WNDCLASS結構

 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章