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。

           

  • 相关阅读:
    Linux 服务器 个人常用操作命令记录
    Thinkphp5.0 自定义命令command的使用
    vue初学之node.js安装、cnpm安装、vue初体验
    php实现在不同国家显示网站的不同语言版本
    array_map、array_walk、array_filter三个函数的区别
    实现简单点赞功能
    SQL语言-----数据操作
    SQL语言
    MySQL高可用架构之Keepalived+主从架构部署
    MyCAT源码分析——分析环境部署
  • 原文地址:https://www.cnblogs.com/fag888/p/5789158.html
Copyright © 2011-2022 走看看