首页 > 编程语言 > 详细

《深入浅出MFC》第十章 MFC与对话框

时间:2018-12-11 23:22:00      阅读:122      评论:0      收藏:0      [点我收藏+]

可以通过对话框编辑器设计对话框模板,在资源视图中选择添加一个对话框资源。通过属性页可以设置对话框或控件的属性。

通过VS环境中的格式,tab顺序可以设置控件的tab顺序,只需按指定的顺序依次点击控件即可。

在VS开发环境中选择“格式”菜单中的测试对话框可以直接测试对话框。

对话框调整完成并保存后会在RC文件中保存相应的数据。

通过编辑对话框模板来完成对话框的外貌设计,通过设计对话框的专用类来完成对话框的行为。通过派生MFC的CDialog类来产生对话框的专用类。

不需要手动为对话框创建专有类,通过ClassWizard完成对话框类的创建,并将对话框上的控件映射到类的成员变量上,这也就是所谓的DDX(Dialog Data eXchange),并且可以为这些变量设置允许值的规则,这就是所谓的DDV(Dialog Data Validate)。

派生的对话框类的构造函数首先调用基类的构造函数,并把对话框模板的ID以及父窗口指针传递给构造函数,这样才有办法在创建对话框时能从RC文件中找到对话框资源。

在对话框的Class Wizard中可以快速的为控件添加消息处理函数,在Object IDs中找到要添加消息的控件ID,然后选中要处理的消息并点击按钮“添加处理函数”即可,并且也可以通过不同的标签页添加对话框消息,重写对话框虚函数,添加控件成员变量和方法等。

对话框的Data Map不同于其它的Map,每笔Data Map都有两笔记录,一个负责DDX,一个负责DDV。Data Map放在.cpp文件中的DoDataExchange函数中。若手动完成Data Map,需要先写DDX,在写DDV,这是规定,必须遵守。当数据“有必要”在控件与成员变量之间搬移时,Framework会自动调用DoDataExchange。当需要手动引发DoDataExchange函数时,只需调用UpdateData(false),其中参数为true时表示从控件中接收数据到类的成员变量中,否则表示从成员变量中初始化控件。参考:https://msdn.microsoft.com/zh-cn/library/t9fb9hww.aspx,https://msdn.microsoft.com/zh-cn/library/cc485513(v=vs.71).aspx

《深入浅出MFC》第十章 MFC与对话框

原文:https://www.cnblogs.com/jefflee/p/6683588.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!