VC++中对话框数据交换【完美无瑕】51CTO博客 - 乐橙lc8

VC++中对话框数据交换【完美无瑕】51CTO博客

2019年04月06日15时11分18秒 | 作者: 迎松 | 标签: 对话框,数据,函数 | 浏览: 403

     假如运用 DDX 机制,则通常在 OnInitDialog 处理程序或对话框结构函数中设置对话框目标成员变量的初始值。在对话框行将显现前,结构的 DDX 机制将成员变量的值传输给对话框中的控件,当对话框本身为呼应 DoModal 或 Create 而出现时,这些值即出现在该对话框中。

CDialog 中 OnInitDialog 的默许完成调用 CWnd 类的 UpdateData 成员函数以初始化对话框中的控件。当用户单击“确认”按钮(或任何时候调用参数为 TRUE 的 UpdateData 成员函数)时,同样是该机制将控件中的值传输到成员变量。对话框数据验证机制将验证您指定了验证规矩的任何数据项。          正如传递给它的 BOOL 参数所指定的那样,UpdateData 进行双向交流。为了履行交流,UpdateData 设置 CDataExchange 目标并调用对话框类对 CDialog 的 DoDataExchange 成员函数的重写。DoDataExchange 选用 CDataExchange 类型的参数。传递给 UpdateData 的 CDataExchange 目标 表明交流的上下文,它界说交流方向等信息。当您(或某个代码导游)重写 DoDataExchange 时,也就指定了对每一数据成员(控件)的一个 DDX 函数的调用。UpdateData 传递给您的 DoDataExchange 一个 CDataExchange 参数,每个 DDX 函数都知道怎么依据该参数所供给的上下文在两个方向 交流数据。MFC 供给许多用于不同交流类型的 DDX 函数。下例显现一个 DoDataExchange 重写,其间调用了两个 DDX 函数和一个 DDV 函数:   
  1. void CMyDialog::DoDataExchange(CDataExchange* pDX) 
  2.     CDialog::DoDataExchange(pDX);    // Call base class version 
  3.     DDX_Check(pDX, IDC_MY_CHECKBOX, m_bVar); 
  4.     DDX_Text(pDX, IDC_MY_TEXTBOX, m_strName); 
  5.     DDV_MaxChars(pDX, m_strName, 20); 
  6. DDX_ 行和 DDV_ 行是数据映射。显现的示例 DDX 和 DDV 函数别离用于复选框 (CheckBox) 控件和编辑框控件。 假如用户撤销有形式对话框,则 OnCancel 成员函数停止该对话框,而且 DoModal 回来 IDCANCEL 值。在此情况下
  7. ,对话框和对话框目标之间不进行任何数据交流。
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表乐橙lc8立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章