WNDCLASS結構
WNDCLASS結構包含了RegisterClass函數註冊窗口類時的窗口類屬性。
這個結構在使用RegisterClassEx函數註冊窗口類時被WNDCLASSEX結構所取代。如果不需爲窗口類設置小圖標時,仍然可以使用WNDCLASS和RegisterClass。
語法:
typedef struct {
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
} WNDCLASS, *pWNDCLASS;
成員:
style
描述類風格。該成員可以是“Class Styles”的任意組合。
lpfnWndProc
指向窗口過程的指針。必須使用CallWindowProc函數調用窗口過程。
cbClsExtra
表示窗口類結構之後分配的額外的字節數。系統將該值初始化爲0.
cbWndExtra
表示窗口實例之後分配的額外的字節數。系統將該值初始化爲0.如果使用資源文件裏的CLASS指令創建對話框,並用WNDCLASS註冊該對話框時,cbWndExtra必須設置成DLGWNDOWEXTRA。
hInstance
包含該類實例的句柄,該實例包含了窗口過程。
hIcon
類圖標的句柄。該成員必須爲一個圖標資源的句柄。如果hIcon爲NULL,系統將提供默認圖標。
hCursor
鼠標指針的句柄。改成員必須爲一個指針資源的句柄。如果hCursor爲NULL,應用程序必須在指針移入應用程序窗口時顯式設置指針類型。
hbrBackground
背景畫刷的句柄。該成員或者是用於繪製背景的物理畫刷的句柄,或者是一個顏色值。顏色值必須爲如下標準系統顏色值(值1必須加到選定顏色中)。如果顏色值給定後,必須將該值轉換成如下HBRUSH類型。
COLOR_ACTIVEBORDER
COLOR_ACTIVECAPTION
COLOR_APPWORKSPACE
COLOR_BACKGROUND
COLOR_BTNFACE
COLOR_BTNSHADOW
COLOR_BTNTEXT
COLOR_CAPTIONTEXT
COLOR_GRAYTEXT
COLOR_HIGHLIGHT
COLOR_HIGHLIGHTTEXT
COLOR_INACTIVEBORDER
COLOR_INACTIVECAPTION
COLOR_MENU
COLOR_MENUTEXT
COLOR_SCROLLBAR
COLOR_WINDOW
COLOR_WINDOWFRAME
COLOR_WINDOWTEXT
當調用UnregisterClass時,系統自動刪除背景畫刷。應用程序不應刪除這些畫刷。
當hbrBackground爲NULL時,應用程序必須在繪製客戶區域時繪製它自己的背景。爲了確定背景是否一定要繪製,應用程序或者可以處理 WM_ERASEBKGND消息,或者測試PAINTSTRUCT的fErase成員。PAINTSTRUCT是由BeginPaint函數填充的。
lpszMenuName
指向NULL結束的字符串,該字符串描述菜單的資源名,如同在資源文件裏顯示的名字一樣。若使用一個整數標識菜單,可以使用MAKEINTRESOURCE宏。如果lpszMenuName爲NULL,那麼該窗口類的窗口將沒有默認菜單。
lpszClassName
指向NULL結束的字符串,或者是一個原型(atom)。若該參數是一個原型,它必須是一個有先前調用RegisterClass或者 RegisterClassEx函數產生的類原型。類原型必須作爲lpszClassName的低字,高字必須爲0.若lpszClassName是一個字符串,它描述了窗口類名。這個類名可以是由RegisterClass或者RegisterClassEx註冊的名字,或者是任何預定義的控件類名。
結構信息
Header 在winuser.h聲明,包含windows.h