MFC之控件成员变量和UpdateData()

您所在的位置:网站首页 思域18款10保值率 MFC之控件成员变量和UpdateData()

MFC之控件成员变量和UpdateData()

2023-11-14 14:49| 来源: 网络整理| 查看: 265

添加控件成员变量

DoDataExchange():此函数存放的就是控件和变量之间的映射消息。

MSDN: Called by the framework to exchange and validate dialog data.

// 框架调用此函数来改写与确认对话框数据。

Never call this function directly. It is called by the UpdateData member function. Call UpdateData to initialize a dialog box’s controls or retrieve data from a dialog box.

// 此函数永远不被直接调用,它只是呼叫UpdateData函数时才会被调用。

代码如下:

void CCalculatorDialogDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CCalculatorDialogDlg) // NOTE: the ClassWizard will add DDX and DDV calls here //TODO: 添加m_strNum1变量与IDC_SHOW控件的关联 DDX_Text(pDX, IDC_SHOW, m_strNum1); //}}AFX_DATA_MAP }

DDX宏

DDX_Text:可以理解为把字符串变量和控件的文本关联起来。

在字符串和edit box控件之间传输数据,变量类型可以是int,UINT,long,DWORD,CString,float,double,CString,BSTR,CComBSTR或者静态分配的字符串数组(详细查看MSDN),但是不能使用new动态分配的数组。

DDX_Check:在check box控件和int型变量之间转换check box控件的状态。

如复选框状态。

DDX_Control:可以理解为把变量和控件本身关联起来。

管理着在对话框、表格视或控件视中被子类化的控件与对话框、表格视或控件视的CWnd数据成员之间的数据交换。

UpdateData()

UpdateData函数内部调用了DoDataExchange。该函数只有一个布尔型参数,它决定了数据传送的方向。调用UpdateData(TRUE)将数据从对话框的控件中传送到对应的数据成员中,调用UpdateData(FALSE)则将数据从数据成员中传送给对应的控件。

UpdateData(FALSE)是将变量的值传到控件,表示对话框正在初始化.

UpdateData(TRUE)是从控件中取值到关联的变量, 表示数据正在获取

UpdateData(TRUE);//用于将屏幕上控件中的数据交换到变量中。 UpdateData(FALSE);//用于将数据在屏幕中对应控件中显示出来。

当你修改了变量的值,希望对话框控件得到更新显示的时候,就应该在修改变量后调用UpdateData(FALSE);

如果你希望知道对话框中显示的值,就应该在访问变量前调用UpdateData(TRUE)。  

//取值 UpdateData(TRUE); CString buf = m_Edit; //赋值 m_Edit = "ok!"; UpdateData(FALSE);

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3