VC++中对话框数据交换

如果使用 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 函数:

void CMyDialog::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);    // Call base class version
    DDX_Check(pDX, IDC_MY_CHECKBOX, m_bVar);
    DDX_Text(pDX, IDC_MY_TEXTBOX, m_strName);
    DDV_MaxChars(pDX, m_strName, 20);
}
DDX_ 行和 DDV_ 行是数据映射。显示的示例 DDX 和 DDV 函数分别用于复选框 (CheckBox) 控件和编辑框控件。 如果用户取消有模式对话框,则 OnCancel 成员函数终止该对话框,并且 DoModal 返回 IDCANCEL 值。在此情况下
,对话框和对话框对象之间不进行任何数据交换。

本文出自 “驿落黄昏” 博客,请务必保留此出处http://yiluohuanghun.blog.51cto.com/3407300/1097056

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据
, 控件
, 对话框
, 函数
, 参数
, 成员函数对话框
, vc excel checkbox
, 成员
, 交换两个变量
两个变量交换值
vc打开文件对话框、vc选择文件夹对话框、vc点击按钮弹出对话框、vc 显示对话框、vc弹出对话框,以便于您获取更多的相关知识。

时间: 2024-10-02 03:13:21

VC++中对话框数据交换的相关文章

VC中的数据类型转换BSTR、char*和CString

简介 摘要:关于VC中的数据类型转换BSTR.char*和CString的深入研究. 步骤/方法 char*转换成CString 若将char*转换成CString,除了直接赋值外,还可使用CString::Format进行.例如: char chArray[] = "This is a test"; char * p = "This is a test"; 或 LPSTR p = "This is a test"; 或在已定义Unicode应的

不同数据库中的数据交换

问题描述 我是初学者,oracle和SQLServer是怎样进行数据交换的?例如怎样oracle里面的表导入到SQLServer中去?

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

硅谷网12月5日讯 在很多地方都有"数据交换"这个概念,本文所说的"数据交换" 是指在http://www.aliyun.com/zixun/aggregation/11991.html">计算机网络中,一个系统把数据传递给另外一个系统.这非常类似于一个人要告诉另外一个人一件事情. 当一个人要把一件事情告诉另外一个人的时候,我们可以通过电话.邮件.短信.IM工具或者当面说的方式来交流.这种方式类似于系统数据交换要通过 tcp.udp.管道等等的方式实

互联网正向泛互联网化高速演化中,数据交换的需求和数据量都出现井喷

在以往数据分享的操作中,我们更多以携带为主:从1.44MB的磁盘到8GB的U盘,但由于泛互联网化的出现,这种较慢的分享方式已经成为瓶颈.而原本动辄几兆到几百兆的点对点传输或邮件附件,也已无法满足现有用户超大规模的多样化分享需求,网盘的出现,成为必然.不论是对于用户还是企业,大家对未来云端空间的向往日益加深,百度网盘正是为了满足我们的强烈需求而用"心"努力着. 经历了4个多月公测的百度网盘在7月30日正式开放后,以一种全新的姿态拥抱新老用户,近日,百度网盘全新打造的UI也正式上线,为的就

MFC中对话框的数据交换(DDX)和数据校验(DDV)

MFC中对话框的数据交换(DDX)和数据校验(DDV)<reference MFC TNO 26>DDX : dialog data exchangeDDV : dialog data validation文档描述MFC中的DDX DDV机制,如何使用DDX_和DDV_ 函数和定制自己的DDX_ ,DDV_函数: Dialog Data Exchange概要:对话框的数据交换不依赖于任何宏来实现,全部依赖于C++代码实现,唯一特别之处在于每一个对话框如果想处理自己的数据交互必须重载一个虚函数v

Flink中task之间的数据交换机制

Flink中的数据交换构建在如下两条设计原则之上: 数据交换的控制流(例如,为实例化交换而进行的消息传输)是接收端初始化的,这非常像最初的MapReduce. 数据交换的数据流(例如,在网络上最终传输的数据)被抽象成一个叫做IntermediateResult的概念,它是可插拔的.这意味着系统基于相同的实现逻辑可以既支持流数据,又支持批处理数据的传输. 数据传输包含多个对象,它们是: JobManager master节点,用于响应任务调度.恢复.协作,以及通过ExecutionGraph数据结

如何更新vc列表控件中的数据

问题描述 如何更新vc列表控件中的数据 我建立了一个基于对话框的MFC,三个对话框-一个主对话框,一个往列表控件添加数据的Add对话框,一个修改列表控件数据的Edit对话框,怎么实现Edit对话框中修改的数据在主对话框展现呢? 解决方案 可以为listctrl控件添加一个CListCtrl类型的变量 m_list;int nIndex =(int)m_list.GetFirstSelectedItemPosition() - 1; //获取选中列行号.然后通过m_list.SetItemText

VC++在对话框中加入属性页

当一个基于对话框的程序中有相当多的控件时,你一定会想到使用属性页来将这些控件分类放置.本文针对这种方法来讨论几种可能实现的方案. 方案一本方案的例子请见源代码打包文件中的Property1部分 在对话框上放置一个Tab Control的控件,再在对话框上放置所需的控件(本例放置了2个按钮,试图在每个标签中显示一个).然后利用Class Wizard来为Tab Control控件创建一个控件变量,该变量是CTabCtrl类的,再为其他控件也创建相应的控件类. 在主对话框的初始函数中CPropert

ASP中文本文件与数据库文件的数据交换

数据|数据库|中文 ASP中文本文件与数据库文件的数据交换 网络数据库的应用是WWW上一个很重要的组成部分,可以这样说,如果缺少了数据库,网络也就失去了灵魂.大家可以想象一下,如果没有象YAHOO,SOHU等搜索引擎的话,那么在网上寻找一个目标变得多么困难,大家在茫茫网海里变得不知所往,动辄迷失方向.其实,这些搜索引擎是网络数据库的最典型的应用,在ASP(Active Server Pages)技术里对数据库的直接操作是比较多的,下面讲述一种由文本文件向数据库文件传递数据的方法.这个文本文体是由