马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 BngThea 于 2017-7-15 09:41 编辑
前面两节内容较少,这节感觉内容好多,花了好多时间才学完
一 核心知识点
* 窗口创建流程
1 定义基本变量:窗口类标题、窗口句柄、消息对象
2 定义并初始化窗口类对象wndclass
3 RegisterClass()注册wndclass
4 CreateWindow()创建窗口并将其句柄赋给hwnd
5 ShowWindow() 和 UpdateWindow()显示并更新窗口
6 消息更新与循环
* WNDCLASS类
成员列表://初始化窗口类型对象的参数:
wndclass.style = CS_HREDRAW | CS_VREDRAW; //定义风格:水平及竖直方向重绘
wndclass.lpfnWndProc = WndProc;//定义回调函数,上述声明的WndProc
wndclass.cbClsExtra = 0; //额外空间,暂无用
wndclass.cbWndExtra = 0; //额外空间,暂无用
wndclass.hInstance = hInstance;//定义当前的实例,用WinMain中的第一个参数
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);//定义图标样式
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); //定义鼠标样式,为普通箭头
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //定义背景颜色,为白色
wndclass.lpszMenuName = NULL; //定义菜单,暂为空
wndclass.lpszClassName = szMyClass; //定义窗口类的标题名称,用基本量szMyCLass
目前关注点在 style成员,同时注意回调函数必须使用带CALLBACK的函数
* CreateWindow()函数
参数列表://创建窗口,并将句柄赋给其hwnd
hwnd = CreateWindow(szMyClass, //窗口类的名称
TEXT("Windows SDK"), //窗口的标题
WS_OVERLAPPEDWINDOW, //窗口的风格
CW_USEDEFAULT, //初始x坐标
CW_USEDEFAULT, //初始y坐标
CW_USEDEFAULT, //初始x尺寸
CW_USEDEFAULT, //初始y尺寸
NULL, //父窗口的句柄,为空
NULL, //菜单的句柄,为空
hInstance, //该窗口用的实例句柄
NULL); //创建时的参数,为空
目前关注的是第三个参数,该参数可选的预定义值非常多,很多窗口自定义功能通过它实现
二 其他
* 对模板自己动手码上五遍,基本能对整个流程有个大致的把握
* 模板中的其他函数还未进行讲解,后续应该会有详细讲解
* Windows SDK编程中无论函数,变量基本都是由单词构成,理解每个单词的含义可能会很好的帮助我们快速深入的进行学习 |