|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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编程中无论函数,变量基本都是由单词构成,理解每个单词的含义可能会很好的帮助我们快速深入的进行学习 |
评分
-
查看全部评分
|