zoukankan      html  css  js  c++  java
  • 《深入浅出MFC》第十章 MFC与对话框

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

    通过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

  • 相关阅读:
    如何用ps简单快速扣头发丝
    thinkphp在iis上不是出现500错误
    PHP数组函数详解大全
    一个搜图的好网站
    手把手编写PHP MVC框架实例教程
    centos配置epel和remi源
    CentOS 7 yum 安装php5.6
    20162322 朱娅霖 作业005&006 栈,队列
    2017-2018-1 bug终结者 团队博客002
    2017-2018-1 bug终结者 团队博客001
  • 原文地址:https://www.cnblogs.com/jefflee/p/6683588.html
Copyright © 2011-2022 走看看