|
pfn字首代表「指向函式的长指标」。(在Win32
API中,长指标和短指标(或者近程指标)没有区别。这只是16位元Windows的遗物。)cb字首代表「位元组数」而且通常作为一个常数来表示一个位元组的大小。h字首是一个代号,而hbr字首代表「一个画刷的代号」。lpsz字首代表「指向以0结尾字串的指标」。
Unicode版的结构定义如下:
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 ;
与前者唯一的区别在於最後两个栏位定义为指向宽字串常数,而不是指向ASCII字串常数。
WINUSER.H定义了WNDCLASSA和WNDCLASSW结构(以及指向结构的指标)以後,表头档案依据对UNICODE识别字的解释,定义了WNDCLASS和指向WNDCLASS的指标(包括一些向後相容的程式码):
#ifdef UNICODE typedef WNDCLASSW WNDCLASS ; typedef PWNDCLASSW PWNDCLASS ; typedef NPWNDCLASSW NPWNDCLASS ; typedef LPWNDCLASSW LPWNDCLASS ; #else typedef WNDCLASSA WNDCLASS ; typedef PWNDCLASSA PWNDCLASS ; typedef NPWNDCLASSA NPWNDCLASS ; typedef LPWNDCLASSA LPWNDCLASS ; #endif
本书後面列出结构时,将只列出功用相同的结构定义,对WNDCLASS就像这样:
typedef struct { UINT style ; WNDPROC lpfnWndProc ; int cbClsExtra ; int cbWndExtra ; HINSTANCE hInstance ; HI |