BngThea 发表于 2017-7-7 16:38:53

《Windows SDK》006 窗口过程

本帖最后由 BngThea 于 2017-7-15 09:49 编辑

一 核心知识点
* 客户区
一个窗口被分为 客户区 和 非客户区,客户区一般可认为是主体窗口,非客户区指的是各种工具,包括菜单,滚动条,最大最小关闭操作,标题栏等等

* 摆脱固有窗口样式的方法
通过创建一个无边框无标题的窗口,再自定义自己风格的各类工具样式

* 窗口过程
在对WNDCLASS类初始化的时候已经将其成员lpfnWndProc 赋值为WndProc,所以Windows在拿到其对象时就知道需要通过WndProc函数来响应窗口过程

* WM_PAINT消息响应流程
1 通过BeginPaint()来设置环境HDC
2 通过GetClientRect()获取需要绘图的矩形区域
3 通过DrawText()来绘制文本信息
4 通过EndPaint()结束整个流程


二 新WINAPI函数
* DrawText(hdc, TEXT("主体内容"), -1, &rect, DT_CENTER)
第一个参数:当前环境设置
第二个参数:显示的主体内容
第三个参数:指向字符串的字符数,一般为-1
第四个参数:指定格式,该函数核心,可以自定义个性化的样式
页: [1]
查看完整版本: 《Windows SDK》006 窗口过程