共用方式為


WNDCLASSEXA 結構 (winuser.h)

包含窗口類別資訊。 它與 RegisterClassExGetClassInfoEx 函式搭配使用。

WNDCLASSEX 結構類似於 WNDCLASS 結構。 有兩個差異。 WNDCLASSEX 包含 cbSize 成員,指定結構的大小,以及 hIconSm 成員,其中包含與視窗類別相關聯之小型圖標的句柄。

語法

typedef struct tagWNDCLASSEXA {
  UINT      cbSize;
  UINT      style;
  WNDPROC   lpfnWndProc;
  int       cbClsExtra;
  int       cbWndExtra;
  HINSTANCE hInstance;
  HICON     hIcon;
  HCURSOR   hCursor;
  HBRUSH    hbrBackground;
  LPCSTR    lpszMenuName;
  LPCSTR    lpszClassName;
  HICON     hIconSm;
} WNDCLASSEXA, *PWNDCLASSEXA, *NPWNDCLASSEXA, *LPWNDCLASSEXA;

成員

cbSize

類型:UINT

這個 結構的大小,以位元組為單位。 將此成員設定為 sizeof(WNDCLASSEX)。 請務必先設定此成員,再呼叫 GetClassInfoEx 函式。

style

類型:UINT

類別樣式(s)。 這個成員可以是 類別樣式的任何組合。

lpfnWndProc

類型:WNDPROC

視窗程式的指標。 您必須使用 CallWindowProc 函式來呼叫視窗程式。 如需詳細資訊,請參閱 WindowProc

cbClsExtra

類型:int

在視窗類別結構之後配置的額外位元組數目。 系統會將位元組初始化為零。

cbWndExtra

類型:int

在窗口實例之後配置的額外位元組數目。 系統會將位元組初始化為零。 如果應用程式使用 WNDCLASSEX 來註冊使用資源檔案中的 CLASS 指示詞所建立的對話框,則必須將此成員設定為 DLGWINDOWEXTRA

hInstance

類型:HINSTANCE

實例的句柄,其中包含 類別的窗口程式。

hIcon

類型:HICON

類別圖示的句柄。 這個成員必須是圖示資源的句柄。 如果這個成員 NULL,則系統會提供預設圖示。

hCursor

類型:HCURSOR

類別數據指標的句柄。 這個成員必須是數據指標資源的句柄。 如果這個成員 NULL,則每當滑鼠移至應用程式的視窗時,應用程式必須明確地設定游標圖形。

hbrBackground

類型:HBRUSH

類別背景筆刷的句柄。 這個成員可以是筆刷的句柄,可用來繪製背景,也可以是色彩值。 色彩值必須是下列其中一種標準系統色彩(值 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取消註冊時,系統會自動刪除類別背景筆刷。 應用程式不應該刪除這些筆刷。

當此成員 NULL時,每當要求應用程式在其工作區中繪製時,都必須繪製自己的背景。 若要判斷背景是否必須繪製,應用程式可以處理 WM_ERASEBKGND 訊息,或測試 PAINTSTRUCT 結構 成員的 fErase 結構,由 beginPaint 函式所填入。

lpszMenuName

類型:LPCTSTR

以 Null 結尾的字元字串指標,指定類別功能表的資源名稱,因為名稱會出現在資源檔中。 如果您使用整數來識別功能表,請使用 MAKEINTRESOURCE 巨集。 如果此成員 NULL,則屬於此類別的視窗沒有預設功能表。

lpszClassName

類型:LPCTSTR

以 Null 終止字串或為 atom 的指標。 如果此參數是 atom,它必須是先前呼叫 registerClass 或 RegisterClassEx 函式所建立 的類別 atom。 atom 必須是低序字組,lpszClassName;高序字必須是零。

如果 lpszClassName 為字串,則會指定視窗類別名稱。 類別名稱可以是 任何向 RegisterClassRegisterClassEx註冊的名稱,或任何預先定義的控件類別名稱。

lpszClassName 的最大長度為 256。 如果 lpszClassName 大於最大長度,則 RegisterClassEx 函式 將會失敗。

hIconSm

類型:HICON

與窗口類別相關聯的小型圖示句柄。 如果此成員 NULL,系統會搜尋由 hIcon 成員所指定的圖示資源,以取得適當大小的圖示做為小型圖示。

言論

注意

winuser.h 標頭會根據 UNICODE 預處理器常數的定義,將 WNDCLASSEX 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
標頭 winuser.h (包括 Windows.h)

另請參閱

概念

GetClassInfoEx

參考

RegisterClassEx

UnregisterClass

視窗類別