-
RegisterClass
鎖定
RegisterClass註冊後再調用CreateWindow函數和CreateWindowEx函數中使用的窗口類。 RegisterClass函數己經由函數RegisterClassEx函數來代替,但是,如果不需要設置小圖標則仍然可以使用RegisterClass函數。
[1]
RegisterClass函數定義
ATOM RegisterClass(__inCONSTWNDCLASS* lpWndClass);
RegisterClass參數
RegisterClass返回值
ATOM類型為Windows中定義的新數據類型,其即unsigned short類型,在<WinDef.h>中的定義如下:
typedef WORD ATOM; typedef unsigned short WORD;
如果函數成功,返回值是唯一標識已註冊的類的一個原子;如果函數失敗,返回值為0。若想獲得更多錯誤信息,請調用GetLastError函數。
RegisterClass其他信息
如果使用RegisterClassA來註冊窗口,應用程序通知系統被註冊類的窗口的消息使用ANSI字符集的文本和字符參數;如果使用RegisterClassW來註冊窗口,應用程序需要系統以Unicode來傳遞消息的文本參數。lsWindowUnicode函數使應用程序可以查詢每一個窗口的字符特徵。參看Win32API中的ANSI和Unicode函數,請查閲Functiont prototype。
應用程序註冊的所有的窗口類在應用程序中止後都為未註冊的類。
Windows 95:所有由DLL註冊的類在DLL卸載後均未註冊的類。
Windows NT:所有由DLL註冊的類在DLL卸載後仍為已註冊的類。
Windows 95:如果WNDCLASSEX結構中的cbWndExtra或cbClsExtra單元包含字節數超過40個字節,則RegisterClassEx將失敗。
Windows CE:由lpWndClass參數指向的WNDCLAS結構不支持lpszMenuName域,因為WindowsCE不支持缺省菜單。
除非使用了WindowsCE的lconcurs組件(這個組件提供了在適當目標平台上的鼠標支持),否則不能使用由lpWndClass指向的WNDCLASS結構中的hCursor域。
速查:Windows NT:3.1以上版本;Windows:95以上版本:WindowsCE:1.0以上版本;頭文件:Winuser.h;庫文件:user32.lib;Unicode:在Windows NT上實現為Unicodee和ANSI兩種版本。
- 參考資料
-
- 1. RegisterClassA function (winuser.h) - Win32 apps | Microsoft Docs .Microsoft Docs 微軟文檔.2018-05-12[引用日期2020-08-07]