lpfnWndProc

lpfnWndProc,WNDCLASSEX 中最重要的成員,是一個指向函式的長指針。

wndclassEX 中最重要的成員莫過於lpfnWndProc了。前綴 lpfn 表示該成員是一個指向函式的長指針。在 Win32中由於記憶體模式是 FLAT 型,所以沒有 near 或 far 的區別。每一個視窗類必須有一個視窗過程,當 Windows 把屬於特定視窗的訊息傳送給該視窗時,該視窗的視窗類負責處理所有的訊息,如鍵盤訊息或滑鼠訊息。由於視窗過程差不多智慧型地處理了所有的視窗訊息循環,所以您只要在其中加入訊息處理過程即可。
對於WNDCLASSEX的定義見WINUSER.H。可以看出為了使用不同的字元集,定義了兩個結構體。
後面有一個宏,會根據編譯選項來決定使用哪個結構。
typedef struct tagWNDCLASSA {
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCSTR lpszMenuName;
LPCSTR lpszClassName;
} WNDCLASSA, *PWNDCLASSA, NEAR *NPWNDCLASSA, FAR *LPWNDCLASSA;
typedef struct tagWNDCLASSW {
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCWSTR lpszMenuName;
LPCWSTR lpszClassName;
} WNDCLASSW, *PWNDCLASSW, NEAR *NPWNDCLASSW, FAR *LPWNDCLASSW;
#ifdef UNICODE
typedef WNDCLASSW WNDCLASS;
typedef PWNDCLASSW PWNDCLASS;
typedef NPWNDCLASSW NPWNDCLASS;
typedef LPWNDCLASSW LPWNDCLASS;
#else // UNICODE
typedef WNDCLASSA WNDCLASS;
typedef PWNDCLASSA PWNDCLASS;
typedef NPWNDCLASSA NPWNDCLASS;
typedef LPWNDCLASSA LPWNDCLASS;
#endif

相關詞條

相關搜尋

熱門詞條

聯絡我們