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


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

           在程序运行界面中,用户往往会改变控件的属性,例如,在编辑框中输入字符串,或者改变组合框的选中项,又或者改变复选框的选中状态等。控件的属性改变后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。

           

  • 相关阅读:
    数据结构 树(下)
    数据结构 树(上)
    Python Scrapy爬虫(上)
    线程的生命周期
    多线程-方式二实现Runnable接口方式
    Thread类中的常用的方法及概述
    多线程-方式一继承Thread方式
    14: 字母的前趋或后继
    13: A+B
    12: 成绩转换
  • 原文地址:https://www.cnblogs.com/fag888/p/5789158.html
Copyright © 2020-2023  润新知