如果使用 DDX 机制,则通常在 OnInitDialog 处理程序或对话框构造函数中设置对话框对象成员变量的初始值。在对话框即将显示前,框架的 DDX 机制将成员变量的值传输给对话框中的控件,当对话框本身为响应 DoModal 或 Create 而出现时,这些值即出现在该对话框中。

CDialog 中 OnInitDialog 的默认实现调用 CWnd 类的 UpdateData 成员函数以初始化对话框中的控件。当用户单击“确定”按钮(或任何时候调用参数为 TRUE 的 UpdateData 成员函数)时,同样是该机制将控件中的值传输到成员变量。对话框数据验证机制将验证您指定了验证规则的任何数据项。 
正如传递给它的 BOOL 参数所指定的那样,UpdateData 进行双向交换。为了执行交换,UpdateData 设置 CDataExchange 对象并调用对话框类对 CDialog 的 DoDataExchange 成员函数的重写。DoDataExchange 采用 CDataExchange 类型的参数。传递给 UpdateData 的 CDataExchange 对象
表示交换的上下文,它定义交换方向等信息。当您(或某个代码向导)重写 DoDataExchange 时,也就指定了对每一数据成员(控件)的一个 DDX 函数的调用。UpdateData 传递给您的 DoDataExchange 一个 CDataExchange 参数,每个 DDX 函数都知道如何根据该参数所提供的上下文在两个方向
交换数据。MFC 提供许多用于不同交换类型的 DDX 函数。下例显示一个 DoDataExchange 重写,其中调用了两个 DDX 函数和一个 DDV 函数: 
  1. void CMyDialog::DoDataExchange(CDataExchange* pDX)
  2. {
  3. CDialog::DoDataExchange(pDX);    // Call base class version
  4. DDX_Check(pDX, IDC_MY_CHECKBOX, m_bVar);
  5. DDX_Text(pDX, IDC_MY_TEXTBOX, m_strName);
  6. DDV_MaxChars(pDX, m_strName, 20);
  7. }
  8. DDX_ 行和 DDV_ 行是数据映射。显示的示例 DDX 和 DDV 函数分别用于复选框 (CheckBox) 控件和编辑框控件。 如果用户取消有模式对话框,则 OnCancel 成员函数终止该对话框,并且 DoModal 返回 IDCANCEL 值。在此情况下
  9. ,对话框和对话框对象之间不进行任何数据交换。

转载于:https://blog.51cto.com/yiluohuanghun/1097056

VC++中对话框数据交换【十全十美】相关推荐

  1. 软件系统开发中的数据交换协议

    在很多地方都有"数据交换"这个概念,本文所说的"数据交换" 是指在计算机网络中,一个系统把数据传递给另外一个系统.这非常类似于一个人要告诉另外一个人一件事情. ...

  2. 计算机网络FMD是什么,计算机网络中的数据交换

    计算机网络中,数据交换的类型有:电路交换.报文交换.分组交换. ☞数据交换--电路交换 Q:如何实现数据通过网络核心从源主机到达目的主机? A:数据交换.(现在网络主要采用的技术是数据交换) 2台主机 ...

  3. 纯新手DSP编程--5.31--DSP/BIOS中的数据交换

    DSP/BIOS内核提供了丰富的数据交换途径.利用DSP/BIOS,用户不仅可以方便的实现DSP应用程序与主机的CCS或其他Windows程序之间的数据交换(RTDX和HST),而且还可以利用PIP或 ...

  4. iOS 中 XML 数据交换格式

         XML 是一种自描述的数据交换格式,但是 XML 的数据交换格式并没有 JSON 来的轻便,但是无可否认的是,XML 的应用范围也是非常广泛的,比如在 ROS(一个开源机器人操作系统)中利用 ...

  5. Smartcard中PPS数据交换分析

    相关文章: <Smartcard 中 T0 协议等待时间 WT 的定义和计算> 1. 什么是PPS? PPS,全称为Protocol and Parameters Selection,直译 ...

  6. 三维建模模型STP格式与Matlab中simscape数据交换的问题

    最近在研究把三维模型中的数据转换到MATLAB上进行仿真,初步知道了MATLAB工具包中Simscape可以进行物理建模.下面的内容主要是从迈斯沃克官方网站上看到的,当然也有一点自己的琢磨. 可以将C ...

  7. 软件开发中的几种数据交换协议

    在很多地方都有"数据交换"这个概念,本文所说的"数据交换" 是指在计算机网络中,一个系统把数据传递给另外一个系统.这非常类似于一个人要告诉另外一个人一件事情. ...

  8. 计算机网络中 数据交换的方式有,计算机网络中的通信数据交换技术探讨

    计算机网络中的通信数据交换技术探讨 摘要:随着科技不断发展,人们对计算机网络技术越来越关注,计算机网络为人们生活带来诸多便利,是科技发展的基础工程.近年来,计算机网络中的通信数据交换技术被广泛应用,网 ...

  9. webservice 参数太大_手把手系列:常用数据交换方案Web Service接口处理法

    手把手系列:常用数据交换方案之Web Service接口处理法 Web Service是一个SOA(面向服务的编程)的架构,是一个平台独立的,低耦合的,基于可编程的web的应用程序,可使用开放的XML ...

最新文章

  1. laravel 目录
  2. 用java写游戏_用java写的扫雷游戏
  3. vc6怎么看错误在哪_周杰伦超话第一!微博超话在哪进入签到?怎么看排名?不会来看!...
  4. 浮点与定点的二进制存储
  5. 太牛了!西工大研究生一期Science发了3篇文章!
  6. mysql实例详解_MySQL 多实例详解
  7. Linux 虚拟机配置-network is unreachable
  8. 第四季-专题9-Linux驱动开发前奏
  9. idea怎么跳转到源代码_mooc-IDEA 项目/文件之间跳转--002
  10. 使用electron开发指静脉客户端遇到的问题总结
  11. SEH in ASM研究
  12. mysql 主从同步 错误_MySQL 主从同步错误(error)解决
  13. 为 Windows 系统替换优雅的苹果字体
  14. java中string的方法_Java中String常用方法
  15. 3Dmax哪个版本好用
  16. DreamWeaver CS5视频教程(建站必备)
  17. exter与static的用法
  18. 2021年中国PLG模式的SaaS公司新增的有哪些代表?
  19. 化工厂人员定位保障安全管理
  20. 计算机会计综合作业,东财《会计信息系统》综合作业答卷

热门文章

  1. git 远程代码回滚master
  2. 拆轮子:requests
  3. eclipse Maven搭建SSH框架
  4. 我的 linux历程
  5. Akka系列(二):Akka中的Actor系统
  6. 怎么通过scanf读取一个空白前的字符
  7. colorWithAlphaComponent
  8. WIFI加密技术介绍
  9. Linux 命令(58)—— readelf 命令
  10. Linux 命令(8)—— rz 命令与 sz 命令