win32内核编程_02.pdf

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
win32内核编程_02

win32_02.txt ================== 第二课 窗口与消息 ================== 一、窗口类及其注册方法 1. 窗口类是包含窗口各种参数信息的结构体(WNDCLASS)。 每个窗口都属于特定的窗口类, 且该窗口类必须注册到操作系统中(RegisterClass)。 每个窗口类必须都有唯一的名称(WNDCLASS::lpszClassName)。 2. 系统窗口类:系统预定义的窗口类, 应用程序可以直接使用。如: 按钮(BUTTON)、编辑框(EDIT)等。 范例:WinButton 3. 应用程序全局窗口类:用户自己定义, 可在当前进程的所有模块(exe及其所加载的各dll)中使用。 易导致类名冲突,谨慎使用。 4. 应用程序局部窗口类:用户自己定义, 只 在当前进程的本模块(exe/dll)中使用。 不同模块即使定义并注册了同名的窗口类,亦无妨, 自己用自己的。 注意:一个进程可以包含多个模块(exe/dll), 每个模块都拥有独立的实例句柄(内存映像)。 5. RegisterClass和RegisterClassEx函数: 将窗口类注册到操作系统中。带Ex是不带Ex的增强版。 ATOM RegisterClassEx (CONST WNDCLASSEX* lpwcx); ATOM即unsigned short,成功返回所注册窗口类的唯一标识码(非0), 失败返回0。 typedef struct { UINT cbSize; // 结构体字节数* UINT style; // 窗口类风格 WNDPROC lpfnWndProc; // 窗口过程函数指针 int cbClsExtra; // 窗口类附加数据缓冲区字节数 int cbWndExtra; // 窗口附加数据缓冲区字节数 HINSTANCE hInstance; // 当前应用程序实例句柄 HICON hIcon; // 大图标句柄(Alt+Tab) HICON hIconSm; // 小图标句柄(标题栏左上角)* HCURSOR hCursor; // 光标句柄 HBRUSH hbrBackground; // 刷子句柄 LPCTSTR lpszMenuName; // 菜单资源名 LPCTSTR lpszClassName; // 窗口类名 } WNDCLASSEX, *PWNDCLASSEX; (*) 相对于WNDCLASS结构增加的成员。 6. 若WNDCLASSEX::style成员中包含CS_GLOBALCLASS位, 1 页 win32_02.txt 则为应用程序全局窗口类,否则为应用程序局部窗口类。 7. 更多窗口类风格 CS_GLOBALCLASS - 应用程序全局窗口类 CS_BYTEALIGNCLIENT - 窗口客户区水平位置按8像素对齐 CS_BYTEALIGNWINDOW - 窗口水平位置按8像素对齐 CS_HREDRAW - 窗口水平变化时重绘 CS_VREDRAW - 窗口垂直变化时重绘 CS_CLASSDC - 同窗口类窗口共享同一个设备上下文 CS_PARENTDC - 使用父窗口的设备上下文 CS_OWNDC - 使用自己的设备上下文 CS_SAVEBITS - 允许窗口被保存为位图,提高窗口绘图效率, 但是耗费内存资源 CS_DBLCLKS - 允许窗口

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档