- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第12章 对话框和对话框类CDialog.pdf
第 12章 对话框和对话框类CDialog
对话框经常被使用,因为对话框可以从模板创建,而对话框模板是可以使用资源编辑器方便
地进行编辑的。
12.1 模式和无模式对话框
对话框分两种类型,模式对话框和无模式对话框。
12.1.1 模式对话框
一个模式对话框是一个有系统菜单、标题栏、边线等的弹出式窗口。在创建对话框时指定
WS_POPUP, WS_SYSMENU, WS_CAPTION 和 DS_MODALFRAME 风格。即使没有指定
WS_VISIBLE 风格,模式对话框也会被显示。
创建对话框窗口时,将发送 WM_INITDIALOG 消息(如果指定对话框的 DS_SETFONT 风
格,还有 WM_SETFONT 消息)给对话框过程。
对话框过程(Dialog box procedure)不是对话框窗口的窗口过程(Window procedure) 。在Win32
里,对话框的窗口过程由 Windows 系统提供,用户在创建对话框窗口时提供一个对话框过
程由窗口过程调用。
对话框窗口被创建之后,Windows 使得它成为一个激活的窗口,它保持激活直到对话框过程
调用::EndDialog 函数结束对话框的运行或者Windows 激活另一个应用程序为止,在激活时,
用户或者应用程序不可以激活它的所属窗口(Owner window )。
从某个窗口创建一个模式对话框时,Windows 自动地禁止使用(Disable )这个窗口和它的
所有子窗口,直到该模式对话框被关闭和销毁。虽然对话框过程可以 Enable 所属窗口,但
是这样做就失去了模式对话框的作用,所以不鼓励这样做。
Windows 创建模式对话框时,给当前捕获鼠标输入的窗口(如果有的话)发送消息
WM_CANCLEMODE 。收到该消息后,应用程序应该终止鼠标捕获(Release the mouse capture)
以便于用户能把鼠标移到模式对话框;否则由于Owner 窗口被禁止,程序将失去鼠标输入。
为了处理模式对话框的消息,Windows 开始对话框自身的消息循环,暂时控制整个应用程序
的消息队列。如果Windows 收到一个非对话框消息时,则它把消息派发给适当的窗口处理;
如果收到了 WM_QUIT 消息,则把该消息放回应用程序的消息队列里,这样应用程序的主
消息循环最终能处理这个消息。
当应用程序的消息队列为空时,Windows 发送 WM_ENTERIDLE 消息给 Owner 窗口。在对
话框运行时,程序可以使用这个消息进行后台处理,当然应该注意经常让出控制给模式对话
框,以便它能接收用户输入。如果不希望模式对话框发送 WM_ENTERIDlE 消息,则在创建
模式对话框时指定 DS_NOIDLEMSG 风格。
一个应用程序通过调用::EndDialog 函数来销毁一个模式对话框。一般情况下,当用户从系
统菜单里选择了关闭(Close )命令或者按下了确认(OK )或取消(CANCLE )按钮,::EndDialog
被对话框过程所调用。调用::EndDialog 时,指定其参数nResult 的值,Windows 将在销毁对
话框窗口后返回这个值,一般,程序通过返回值判断对话框窗口是否完成了任务或者被用户
取消。
12.1.2 无模式对话框
一个无模式对话框是一个有系统菜单、标题栏、边线等的弹出式窗口。在创建对话框模板时
指定 WS_POPUP 、WS_CAPTION 、WS_BORDER 和 WS_SYSMENU 风格。如果没有指定
WS_VISIBLE 风格,无模式对话框不会自动地显示出来。
一个无模式对话框既不会禁止所属窗口,也不会给它发送消息。当创建一个模式对话框时,
Windows 使它成为活动窗口,但用户或者程序可以随时改变和设置活动窗口。如果对话框失
去激活,那么即使所属窗口是活动的,在 Z 轴顺序上,它仍然在所属窗口之上。
应用程序负责获取和派发输入消息给对话框。大部分应用程序使用主消息循环来处理,但是
为了用户可以使用键盘在控制窗口之间移动或者选择控制窗口,应用程序应该调
用::IsDialogMessage 函数。
这里,顺便解释::IsDialogMessage 函数。虽然该函数是为无模式对话框设计的,但是任何包
含了控制子窗口的窗口都可以调用它,用来实现类似于对话框的键盘选择操作。
当::IsDialogMessage 处理一个消息时,它检查键盘消息并把它们转换成相应对话框的选择命
令。例如,当 Tab 键被压下时,下一个或下一
您可能关注的文档
- 福州生活网安装使用教程.doc
- 福建中华高级技工学校铜盘教材订购计划表.xls
- 福建农林大学教案-山东理工大学教案.pdf
- 福建师范大学招生简章.doc
- 福建师范大学汉语国际教育2011年考研真题、报录比、考研精典笔记.pdf
- 福建省厦门市2013届高三上学期期末质量检查历史试题 Word版含答案.doc
- 福建省霞浦八中2013-2014学年八年级生物第一学期教学半期考标准评价卷.doc
- 福建长乐市卫生系统事业单位考试大纲.doc
- 福清何荣01123-中煤网刘玉明valve-外贸需求分析报告-201112.pdf
- 离合制动器1.pdf
- 上海海洋大学《海洋环境分析技术》课件-21化学发光分析法.pdf
- 上海海洋大学《海洋环境分析技术》课件-20分子荧光分析法.pdf
- 上海海洋大学《海洋环境分析技术》课件-22色谱分离过程.pdf
- 上海海洋大学《海洋环境分析技术》课件-25气相色谱仪与固定液.pdf
- 上海海洋大学《海洋环境分析技术》课件-24色谱定性定量方法.pdf
- 上海海洋大学《海洋环境分析技术》课件-26气相色谱检测器.pdf
- 上海海洋大学《海洋环境分析技术》课件-29液相色谱固定相与流动相.pdf
- 上海海洋大学《海洋环境分析技术》课件-27气相色谱分离条件的选择.pdf
- 上海海洋大学《海洋环境分析技术》课件-28液相色谱仪器与类型.pdf
- 上海海洋大学《海洋环境分析技术》课件-3 原子光谱和分析光谱.pdf
文档评论(0)