CON hIcon ; HCURSOR hCursor ; HBRUSH hbrBackground ; LPCTSTR lpszMenuName ; LPCTSTR lpszClassName ; } WNDCLASS, * PWNDCLASS ;
我也不再著重说明指标的定义。一个程式写作者的程式不应该因为使用以LP或NP为字首的不同指标型态而被搅乱。
在WinMain中为WNDCLASS定义一个结构,通常像这样:
WNDCLASS wndclass ;
然後,你就可以初始化该结构的10个栏位,并呼叫RegisterClass。
在WNDCLASS结构中最重要的两个栏位是第二个和最後一个,第二个栏位(lpfnWndProc)
是依据这个类别来建立的所有视窗所使用的视窗讯息处理程式的位址。在HELLOWIN.C中,这个是WndProc函式。最後一个栏位是视窗类别的文字名称。程式写作者可以随意定义其名称。在只建立一个视窗的程式中,视窗类别名称通常设定为程式名称。
其他栏位依照下面的方法描述了视窗类别的一些特徵。让我们依次看看WNDCLASS结构中的每个栏位。
叙述
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
使用C的位元「或」运算子结合了两个「视窗类别样式」识别字。在表头档案WINUSER.H中,已定义了一整组以CS为字首的识别字:
#define CS_VREDRAW 0x0001 #define CS_HREDRAW 0x0002 #define CS_KEYCVTWINDOW 0x0004 #define CS_DBLCLKS 0x0008 #define CS_OWNDC 0x0020 #define CS_CLASSDC 0x0040 #define CS_PARENTDC 0x0080 #define CS_NOKEYCVT 0x0100 #define CS_NOCLOSE 0x0200 #define CS_SAVEBITS 0x0800 #define CS_BYTEALIGNCLIENT 0x1000 #define CS_BYTEALIGNWINDOW 0x2000 #define CS_GLOBALCLASS 0x4000 #define CS_IME 0x00010000
由於每个识别字都可以在一个复合值中设置一个位元的值,所以按这种方 |