在MFC中我們常常要把一些變量於控件對應起來! 並通過UpdateDate來實調用DoDataExchange(CDataExchange* pDX)實現變量信息交換!
VS2010 添加控件變量的過程: 右鍵單擊控件,選擇添加變量,彈出添加成員變量向導,記得選擇控件變量復選框。在類別下拉框選擇Value。選擇變量類型,設置變量名。
如:
DDX_Text(pDX, IDC_STATICCOUNT, m_sCount); --> value對應
把控件ID為IDC_STATICCOUNT的控件與m_sCount變量對應起,
用UpdateDate(TRUE)來把IDC_STATICCOUNT控件數據寫到m_sCount;
用UpdateDate(FALSE)把m_sCount數據讀寫到IDC_STATICCOUNT控件;
DDX_Control(pDX, IDC_BSTARTTIME, m_cStartTime);有盡有-->control
把控件ID為IDC_BSTARTTIME的控件與m_sCount變量對應起,如BUTTON。
此時我們可以通過m_cStartTime控件變量改變對應控件狀態!
m_cStartTime.EnableWindow(FALSE); 可以改變控件是否可用!如果沒有control對應,
那麼我們可以使用等價語句:GetDlgItem(IDC_BSTARTTIME)->EnableWindow(TRUE);
對話框數據交換是由DoDataExchange函數完成,在程序代碼中從來不直接調用這個函數,而是通過CWnd類的另一個成員函數:UpdateData來調用。通過調用UpdateData來初始化對話框控件或者從對話框獲取數據。
UpdateData函數有一個BOOL類型的參數,默認為TRUE。如果其值為TRUE,則說明函數正在獲取對話框中的數據到成員變量,如果其值為FALSE,則說明該函數正在初始化對話框控件。