DDX_Control和DDX_Text的区别

void CTestDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTestDlg)
DDX_Control(pDX, IDC_EDT_NAME, m_EDT_strName);
DDX_Text(pDX, IDC_EDT_NAME, m_strName);
//}}AFX_DATA_MAP
}

  1. DDX_TEXT()可以认为是把字符串变量和控件的内容关联起来; 
  2. DDX_Control()可以认为是把变量和控件本身关联起来; 
  3. DoDataExchange(pDX)就是处理所有变量与其关联控件交换数据的函数。
DDX_TEXT()数据交换过程:
UpdateData(TRUE);//将控件的内容传回 m_strName;
m_strName = _T("关联变量");//修改值
UpdateData(FALSE);//将m_strName的值显示到控件

DDX_Control()数据交换过程:
CString str;
m_EDT_strName.GetWindowText(str);//得到控件的内容保存到str
str = _T("控件绑定变量");
m_EDT_strName.SetWindowText(str);//设置控件的内容为str

你可能感兴趣的:(DDX_Control和DDX_Text的区别)