當你使用了ClassWizard建立了控件和變量之間的聯(lián)系后:當你修改了變量的值,而希望對話(huà)框控件更新顯示,就應該在修改變量后調用 UpdateData(FALSE);如果你希望知道用戶(hù)在對話(huà)框中到底輸入了什么,就應該在訪(fǎng)問(wèn)變量前調用UpdateData(TRUE)。
1、
UpdateData(true);
用窗體上控件中的內容來(lái)更新和控件相關(guān)連的變量的值(只能更新value類(lèi)型的變量)
例如:你在你的窗體中有一個(gè)Edit控件,為這個(gè)控件關(guān)聯(lián)了CString類(lèi)型的變量m_strName;
你在控件中添入內容之后,必須調用UpdateData(true);才能把你添入的內容傳給m_strName這個(gè)變量
UpdateData(false);
和上面的正好相反,還是以上面的Edit為例,當你在程序中改變了m_strName變量的內容的時(shí)候,如果你想讓那個(gè)Edit也顯示更新后的 m_strName,就必須調用UpdateData(false);
這樣在你的Edit中才能顯示更新完的變量的值!
2、
UpdateData(TRUE)是將控件的狀態(tài)傳給其關(guān)聯(lián)的變量,當然你要為控件關(guān)聯(lián)上變量才行。
UpdateData(FALSE)是將控件的關(guān)聯(lián)變量的值傳給控件并改變控件狀態(tài)。
UpdateData刷新的是當前對話(huà)框。
UpdateData(true);//用于將屏幕上控件中的數據交換到變量中。
UpdateData(false);//用于將數據在屏幕中對應控件中顯示出來(lái)。
3、edit控件,與控件關(guān)聯(lián)的變量m_edit,當程序執行,你在控件中輸入數21,要把21傳到 m_edit,UpdateData(true).如果把m_edit修改,要傳到控件UpdateData(false);
另外注意一點(diǎn):
使用UpdateData()函數時(shí),當前界面上所有綁定了的變量(即通過(guò)MFC ClassWizard給控件添加了對應的變量)都會(huì )被UpdateData(TRUE)更新成對應控件中的內容;同樣所有綁定了變量的控件中的內容也會(huì ) UpdateData(FALSE)更新成對應變量中的內容。
要接受用戶(hù)的輸入就true,
要輸入結果給用戶(hù)就flase
數據量不多的話(huà),最好用SetDlgItemText()和GetDlgItemText()
重要補充:
GetWindowText()是獲取控件當前內容(Caption或者the text within the control —for the control,具體可以查看MSDN)值,是對單個(gè)控件而言;
而UpdateData()是作用于整個(gè)CWnd的DDX數據交換機制之中的,是控件和數據的雙向通道。
聯(lián)系客服