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。

           

  • 相关阅读:
    array与xml转换实现(转)
    设计模式之: 策略模式
    设计模式之: 代理模式
    设计模式之: 状态模式
    dedecms分页
    dedecms导出csv文件
    假如项目中使用到了多 表查询,怎么办?
    git忽略某个文件夹
    git忽略某个文件
    无极限分类
  • 原文地址:https://www.cnblogs.com/fag888/p/5789158.html
Copyright © 2011-2022 走看看