MFC 控件变量数据交换
来源:互联网 发布:js 私有函数 编辑:程序博客网 时间:2024/05/21 17:34
在程序运行界面中,用户往往会改变控件的属性,例如,在编辑框中输入字符串,或者改变组合框的选中项,又或者改变复选框的选中状态等。控件的属性改变后MFC会相应修改控件关联变量的值。这种同步的改变是通过MFC为对话框类自动生成的成员函数DoDataExchange()来实现的,这也叫做对话框的数据交换和检验机制。
我们为三个编辑框添加了变量以后,在AdditionDlg.cpp中CAdditionDlg的DoDataExchange()函数的函数体中多了三条DDX_Text调用语句。下面是函数体代码和鸡啄米添加的注释。
- void CAdditionDlg::DoDataExchange(CDataExchange* pDX)
- {
- // 处理MFC默认的数据交换
- CDialogEx::DoDataExchange(pDX);
- // 处理控件IDC_SUMMAND_EDIT和变量m_editSummand之间的数据交换
- DDX_Text(pDX, IDC_SUMMAND_EDIT, m_editSummand);
- // 处理控件IDC_ADDEND_EDIT和变量m_editAddend之间的数据交换
- DDX_Text(pDX, IDC_ADDEND_EDIT, m_editAddend);
- // 处理控件IDC_SUM_EDIT和变量m_editSum之间的数据交换
- DDX_Text(pDX, IDC_SUM_EDIT, m_editSum);
- }
鸡啄米再以Addition程序为例简单说下数据交换机制。如果我们在程序运行界面中输入被加数,则通过CAddition的DoDataExchange()函数可以将输入的值保存到m_editSummand变量中,反之如果程序运行中修改了变量m_editSummand的值,则通过CAddition的DoDataExchange()函数也可以将新的变量值显示到被加数的编辑框中。
但是这种数据交换机制中,DoDataExchange()并不是被自动调用的,而是需要我们在程序中调用CDialogEx::UpdateData()函数,由UpdateData()函数再去自动调用DoDataExchange()的。
CDialogEx::UpdateData()函数的原型为:
BOOL UpdateData(BOOL bSaveAndValidate = TRUE);
参数:bSaveAndValidate用于指示数据传输的方向,TRUE表示从控件传给变量,FALSE表示从变量传给控件。默认值是TRUE,即从控件传给变量。
返回值:CDialogEx::UpdateData()函数的返回值表示操作是否成功,成功则返回TRUE,否则返回FALSE。
- MFC 控件变量数据交换
- MFC控件数据交换:DDX
- MFC控件数据交换:DDX
- MFC控件数据交换:DDX
- MFC—— 控件数据交换:DDX
- MFC操作--控件显示及数据交换
- javascript与MFC ActiveX控件接口方法数据交换
- 1.2学习MFC之控件数据交换UpdateData
- 控件变量和程序成员变量是如何交换数据的?
- 控件变量和程序成员变量是如何交换数据的?
- MFC-控件变量
- MFC控件关联变量
- MFC控件变量
- MFC 控件关联变量
- MFC 控件变量
- MFC控件关联变量
- MFC控件关联变量
- MFC 数据交换(UpdateData)
- iOS Reverse Engineering Part One: Configuring LLDB
- 如何解决Ubuntu终端里面显示路径名称太长
- linux sed命令详解
- ios图形上下文CGContext
- 安装搜狗输入法
- MFC 控件变量数据交换
- 选择排序---堆排序算法(Javascript版)
- Xamarin.Ios 下拉菜单,多选,键盘弹出功能
- Scaler算法小结
- Dijkstra 邻接矩阵 单源点最短路径
- scrapy 抓取豆瓣数据(1)
- Facebook pop
- RMI CORBA AIDL IPC RPC 之间的关系
- 09-Dom操作复选框(全选、全不选、反选)