您的位置:首页 > 其它

DoDataExchange和UpdateData()--MFC函数

2011-03-27 11:57 351 查看
void CMfctmpDlg::DoDataExchange(CDataExchange* pDX)
{
 CDialog::DoDataExchange(pDX);
 //{{AFX_DATA_MAP(CMfctmpDlg)
 
 DDX_Text(pDX, IDC_EDIT1, m_usercode);
 //}}AFX_DATA_MAP
}
DoDataExchange会被框架调用,用来改变和验证对话框的数据。在这个函数中一般是将控件和某些变量关联,当在其它地方改变量的值,通过UpdateData 进行双向交换:
如 UpdateData();
m_usercode="ddsssa";
UpdateData(false);
UpdateData,顾名思义,是用来刷新数据的。
  UpdateData(TRUE) -- 刷新控件的值到对应的变量
  UpdateData(FALSE) -- 拷贝变量值到控件显示例如,窗口中用 DDX_Text(pDX, IDC_EDIT1, m_usercode); 将IDC_EDIT1编辑框控件与m_usercode变量做了关联,如果修改m_usercode之后要想对应控件显示更改,则需要调用 UpdateData(FALSE);反之在IDC_EDIT1的oneditchanged()中需要加入UpdateData(TRUE);
  简单的说,如果Updatedata(TRUE) ;//将控件的值赋值给成员变量
  Updatedata(FALSE);//将成员变量的值赋值给控件

如果你为控件分配了变量
UpdateData(true)
是使用户输入的数据能够反映到变量上
在函数调用之后变量才被赋值

UpdateData(false)
是当你给控件对应的变量赋过值之后,在控件上体现出来
在函数调用之前,控件的值是不会随变量变化的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  框架