一、WinMain 函数原型
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance 程序当前运行实例句柄
HINSTANCE hPrevInstance, // handle to previous instance 前一个实例句柄,参数总为NULL
LPSTR lpCmdLine, // command line 以空字符串结尾的命令行参数
int nCmdShow // show state 指定窗口的显示方式
)
二、创建一个窗口
1.设计一个窗口类
2.注册一个窗口类
3.创建窗口
4.显示及更新窗口
(1).设计一个窗口类
typedef struct _WNDCLASS{
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HANDLE hInstance;
HICON Icon;
HCURSOR Cursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
} WNDCLASS;
① style 属性指定窗口样式:
CS_HREDRAW - 水平宽度变化重绘。
CS_VREDRAW - 垂直方向高度变化重绘.
CS_NOCLOSE - 禁用系统CLOSE命令.设关闭按钮.
CS_DBLCLKS - 窗口接收双击消息.
② lpfnwndproc 函数指针
指向窗口过程函数
窗口过程函数是一个回调函数
③ cbclsExtra; -- 一般值为0
Windows 系统中每一个窗口类型管理一个WNDCLASS结构
④ cbwndExtra; -- 一般值为0
Windows系统中为每一个窗口管理一个内部数据结构,在注册一个窗口类时,
应用程序能够指定一定字节数的附加内存空间,称为窗口附加内存.
⑤hInstance
包含窗口过程的程序实例句柄
⑥hIcon 窗口类图标句柄
成员变量须为一个图标资源句柄且成员为NULL,为系统提供默认图标
我们可使用loadIcon函数来加载一个图标资源,并且它给系统分配图标句柄.