在没有系统看过MFC书时,看人家代码这么写,我就这么做。就知道功能,然后,过了很久不用,就忘记了!
今天弄懂了这个函数的使用,记一下。
在使用classwizard(类向导)为一个控件建立一个变量时,classwizard会为控件和变量建立一个关联
void CCharStatisticDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); // {{AFX_DATA_MAP(CCharStatisticDlg) DDX_Text(pDX, IDC_EDIT1, m_strTxt); DDX_Text(pDX, IDC_CH, m_strCh); DDX_Text(pDX, IDC_EN, m_strEn); DDX_Text(pDX, IDC_AL, m_strTotal); // }}AFX_DATA_MAP }
简单地说,在操作代码部分,使用
Updatedata(TRUE) 表示将控件的值赋值给
成员变量
,即从窗口编辑框中读入数据;
Updatedata(FALSE) 表示将成员变量的值赋值给控件,将数据从窗口显示。
DoDataExchange 函数其实是为了实现一项数据动态绑定技术
而
DDX_XXX函数才是真正实现动态绑定技术的函数,函数在MFC\Include\AFXDD_.H中声明。