zoukankan      html  css  js  c++  java
  • 对话框类的数据交换和检验

    对话框类的数据交换和检验

           在程序运行界面中,用户往往会改变控件的属性,例如,在编辑框中输入字符串,或者改变组合框的选中项,又或者改变复选框的选中状态等。控件的属性改变后MFC会相应修改控件关联变量的值。这种同步的改变是通过MFC为对话框类自动生成的成员函数DoDataExchange()来实现的,这也叫做对话框的数据交换和检验机制。

    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);   
    }

    如果我们在程序运行界面中输入被加数,则通过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。

           

  • 相关阅读:
    Keepalived案例一:Keepalived双机热备(HA)精讲
    Linux服务器挂载ntfs移动硬盘
    RAC 单节点实例异常关闭,关键报错ORA--29770
    模拟等待事件:db file sequential read
    使用dbms_stats.gather_table_stats调整表的统计信息
    oracle rac常用的网络检查命令
    收集Oracle数据库中的SQL基线信息(一)基础信息收集
    Oracle 通过sql profile为sql语句加hint
    将指定SQL的执行计划从共享池删除的方法
    数据库什么时候建立索引?
  • 原文地址:https://www.cnblogs.com/fag888/p/5789158.html
Copyright © 2011-2022 走看看