VS2010/MFC的数据交换机制
2014-03-27 19:22
190 查看
在程序运行界面中,用户往往会改变控件的属性,例如,在编辑框中输入字符串,或者改变组合框的选中项,又或者改变复选框的选中状态等。控件的属性改变后MFC会相应修改控件关联变量的值。这种同步的改变是通过MFC为对话框类自动生成的成员函数DoDataExchange()来实现的,这也叫做对话框的数据交换和检验机制。(这里类似于C#中的数据类型转换,比如将textbox中的输入值转换为double型,赋值给定义变量)
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);}但是这种数据交换机制中,DoDataExchange()并不是被自动调用的,而是需要我们在程序中调用CDialogEx::UpdateData()函数,由UpdateData()函数再去自动调用DoDataExchange()的。CDialogEx::UpdateData()函数的原型为:BOOL UpdateData(BOOL bSaveAndValidate = TRUE);参数:bSaveAndValidate用于指示数据传输的方向,TRUE表示从控件传给变量,FALSE表示从变量传给控件。默认值是TRUE,即从控件传给变量。返回值:CDialogEx::UpdateData()函数的返回值表示操作是否成功,成功则返回TRUE,否则返回FALSE。
相关文章推荐
- VS2010/MFC的数据交换机制
- Flink中task之间的数据交换机制
- Day04ajax中数据交换机制(json)串 $.parseJSON,gson.toJSON
- Android应用层使用共享内存机制进行进程间交换数据
- Android Binder机制实现进程间数据交换(不使用aidl实现)
- ODBC中的FX/Bulk RFX数据交换机制分析
- 对话框数据交换和验证机制
- 【6】页面数据和控件的自动交换机制
- Android应用层使用共享内存机制进行进程间交换数据
- Vc中对话框数据交换和验证机制
- 对话框数据交换和验证机制
- 淘宝DataX 数据交换机制学习总结
- ODBC中的FX/Bulk RFX数据交换机制分析
- Android应用层使用共享内存机制进行进程间交换数据
- Java 与 Python 通过 Apache Avro 交换数据
- 杭电2016 数据的交换输出
- ASP.NET中使用JSON方便实现前台与后台的数据交换
- 游戏服务器 - 数据库异步操作技术 & 数据的保存机制
- oracle form 数据操作机制 保存按钮 KEY-COMMIT
- Android:Activity+Fragment及它们之间的数据交换(一)