在沒有系統看過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中聲明。