其实上一篇已经给出窗口的创建过程,但是还不够具体,不够详细,今天就给出比较具体的流程。
一.窗口创建步骤
1.1 定义程序入口winmain函数
1.2 注册窗口
1.2.1 窗口类
typedef struct { UINT style; // 窗口类风格
WNDPROC lpfnWndProc; // 窗口过程函数指针
int cbClsExtra; // 窗口类附加数据缓冲区字节数
int cbWndExtra; // 窗口附加数据缓冲区字节数
HINSTANCE hInstance; // 当前应用程序实例句柄
HICON hIcon; // 图标句柄
HCURSOR hCursor; // 光标句柄
HBRUSH hbrBackground; // 刷子句柄
LPCTSTR lpszMenuName; // 菜单资源名
LPCTSTR lpszClassName; // 窗口类名 } WNDCLASS, *PWNDCLASS;
注意: WNDCLASSEX中多了一个 UINT cbSize; // 结构体字节数*
1.2.2 窗口类风格
CS_GLOBALCLASS - 应用程序全局窗口类
CS_BYTEALIGNCLIENT - 窗口客户区水平位置按8像素对齐
CS_BYTEALIGNWINDOW - 窗口水平位置按8像素对齐
CS_HREDRAW - 窗口水平变化时重绘
CS_VREDRAW - 窗口垂直变化时重绘
CS_DBLCLKS - 允许窗口接收鼠标双击消息
CS_NOCLOSE - 没有关闭按钮
1.2.3注册窗口函数
ATOM RegisterClass (CONST WNDCLASS* lpWndClass);
ATOM即unsigned short,成功返回所注册窗口类的唯一标识码(非0), 失败返回0。
1.3 消息处理
LRESULT CALLBACK WindowProc (