RegisterClass

RegisterClass

程序創建窗口時,可以創建預先定義的類或者創建自定義的窗口類。創建自定義的窗口類時,在使用該窗口類前必須註冊該窗口類,使用RegisterClass註冊窗口類。

RegisterClass函數功能


函數功能:該函數註冊在隨後調用CreateWindow函數和CreateWindowEx函數中使用的窗口類。 RegisterClass函數己經由函數RegisterClassEx函數來代替,但是,如果不需要設置類的小目標則仍然可以使用RegisterClass函數。
函數原型:ATOM RegisterClass(CONST wndclass *lpWndClass);

RegisterClass參數


參數:
lpWndClass:指向一個WNDCLASS結構的指針。在將它傳遞給函數之前,必須在該結構中填充適當的類屬性。
返回值:如果函數成功,返回值是唯一標識已註冊的類的一個原子;如果函數失敗,返回值為0。若想獲得更多錯誤信息,請調用GetLastError函數。
備註:如果使用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兩種版本。