MFC_UpdateData()函數的用法

本篇博客是粘貼複製http://www.cnblogs.com/lidabo/archive/2012/07/17/2595464.html的,因爲沒有博客園的帳號,不能轉載或者收藏,但又以爲寫的太有用太好,故拿到開源中國,望諒解html

當你使用了ClassWizard創建了控件和變量之間的聯繫後:當你修改了變量的值,而但願對話框控件更新顯示,就應該在修改變量後調用 UpdateData(FALSE);若是你但願知道用戶在對話框中到底輸入了什麼,就應該在訪問變量前調用UpdateData(TRUE)。 
用處:主要控制ddx_data 
把控件中的值和變量進行交換 
好比你有個編輯框,輸入了一些值,你的程序怎麼獲得呢;必須先調用這個(固然是在用了ddx的狀況) 
反之控件的成員變量中的值也能夠經過該函數自動顯示到控件裏面,根據傳進來的是true或者false 
當你使用了ClassWizard創建了控件和變量之間的聯繫後:當你修改了變量的值,而但願對話框控件更新顯示,就應該在修改變量後調用 UpdateData(FALSE);若是你但願知道用戶在對話框中到底輸入了什麼,就應該在訪問變量前調用UpdateData(TRUE)。 
一、函數

UpdateData(true); 
用窗體上控件中的內容來更新和控件相關連的變量的值(只能更新value類型的變量) 
例如:你在你的窗體中有一個Edit控件,爲這個控件關聯了CString類型的變量m_strName; 
你在控件中添入內容以後,必須調用UpdateData(true);才能把你添入的內容傳給m_strName這個變量htm

UpdateData(false); 
和上面的正好相反,仍是以上面的Edit爲例,當你在程序中改變了m_strName變量的內容的時候,若是你想讓那個Edit也顯示更新後的 m_strName,就必須調用UpdateData(false); 
這樣在你的Edit中才能顯示更新完的變量的值! 
二、blog

UpdateData(TRUE)是將控件的狀態傳給其關聯的變量,固然你要爲控件關聯上變量才行。
UpdateData(FALSE)是將控件的關聯變量的值傳給控件並改變控件狀態。
UpdateData刷新的是當前對話框。博客

UpdateData(true);//用於將屏幕上控件中的數據交換到變量中。
UpdateData(false);//用於將數據在屏幕中對應控件中顯示出來。it

三、edit控件,與控件關聯的變量m_edit,當程序執行,你在控件中輸入數21,要把21傳到 m_edit,UpdateData(true).若是把m_edit修改,要傳到控件UpdateData(false);io

另外注意一點:
使用UpdateData()函數時,當前界面上全部綁定了的變量(即經過MFC ClassWizard給控件添加了對應的變量)都會被UpdateData(TRUE)更新成對應控件中的內容;一樣全部綁定了變量的控件中的內容也會 UpdateData(FALSE)更新成對應變量中的內容。變量

要接受用戶的輸入就true,
要輸入結果給用戶就flasedate

數據量很少的話,最好用SetDlgItemText()和GetDlgItemText()程序

重要補充:

GetWindowText()是獲取控件當前內容(Caption或者the text within the control —for the control,具體能夠查看MSDN)值,是對單個控件而言;  而UpdateData()是做用於整個CWnd的DDX數據交換機制之中的,是控件和數據的雙向通道。

相關文章
相關標籤/搜索