4. WinMain函数的定义
5. 窗口的创建
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HANDLE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
} WNDCLASS;
[知识点] 在Windows.h中,以CS_开头的类样式(Class Style)标识符被定义为16位的常量,这些常量都只有某1位为1。在VC++开发环境中,用goto definition,可以看到CS_VREDRAW=0x0001,CS_HREDRAW=0x0002,CS_DBLCLKS =0x0008,CS_NOCLOSE=0x0200,可将这些16进制数转换为2进制数,就发现它们都只有1位为1,并且为1的位各不相同。用这种方式定义的标识符称为“位标志”,可以用位运算操作符来组合使用这些样式。
例如,要让窗口在水平和垂直尺寸发生变化时发生重绘,可以使用位或(|)如style=CS_HREDRAW | CS_VREDRAW。
例如,要去掉先前的style变量所具有的CS_VREDRAW样式,可以使用取反(~)符进行操作,再和这个变量进行与(&)操作即可实现。如style=style & ~ CS_VREDRAW。
第二个成员变量lpfnWndProc是一个函数指针,指向窗口过程函数,窗口过程函数是一个回调函数,一个Windows程序可以包含多个窗口过程函数,一个窗口过程总是与某一个特定的窗口类相关联(通过WNDCLASS结构体中的lpfnWndProc成员变量指定),基于该窗口过程。
6. 窗口的创建
父 窗 口
|
子 窗 口
|
销毁
|
在父窗口被销毁之前销毁
|
隐藏
|
在父窗口被隐藏之前隐藏,子窗口只有在父窗口可见时可见
|
移动
|
跟随父窗口客户区一起移动
|
显示
|
在父窗口显示之后显示
|