UpdateData

UpdateData

是MFC的窗口函數
UpdateData()是MFC的窗口函數,用來刷新數據的,參數隻有一個,默認為TRUE[1]。總的來說:操作系統會調用這個函數來初始化對話框中的數據,或者檢索或者驗證對話框中的數據。簡單說就是:如果Updatedata(TRUE)==将控件的值賦值給成員變量;Updatedata(FALSE)==将成員變量的值賦值給控件。UpdateData()參數隻有一個,默認為TRUE。簡單地說,如果Updatedata(TRUE)==将控件的值賦值給成員變量,即從窗口編輯框中讀入數據;Updatedata(FALSE)==将成員變量的值賦值給控件,将數據從窗口顯示。你必須用标簽頁的類如CPage0page0;page0.UpdateData(false);才會達到你的目的。
  • 中文名:UpdateData
  • 外文名:BOOL UpdateData
  • 别名:
  • 表達式:
  • 提出者:
  • 适用領域:
  • 意義:MFC的窗口函數
  • 作用:刷新數據

函數說明

UpdateData()是MFC的窗口函數,用來刷新數據的。

總的來說:操作系統會調用這個函數來初始化對話框中的數據,或者檢索或者驗證對話框中的數據。

函數原型

BOOLUpdateData(BOOLbSaveAndValidate=TRUE);

參數說明

bSaveAndValidate:标明那對話框是初始化(FALSE)還是數據恢複(TRUE)。

函數使用

UpdateData()參數隻有一個,默認為TRUE。

UpdateData(TRUE)

——刷新控件的值到對應的變量。(外部輸入值交給内部變量)

即:控件的值—>變量。

UpdateData(FALSE)

——拷貝變量值到控件顯示。(變量的最終運算結果值交給外部輸出顯示)

即:變量值—>控件顯示。

例如,窗口中用DDX_Text(pDX,IDC_EDIT1,m_usercode);

将IDC_EDIT1編輯框控件與m_usercode變量做了關聯,如果修改m_usercode之後要想對應控件顯示更改,則需要調用UpdateData(FALSE);反之在IDC_EDIT1的oneditchanged()中需要加入UpdateData(TRUE);

簡單地說,如果Updatedata(TRUE)==将控件的值賦值給成員變量,即從窗口編輯框中讀入數據;Updatedata(FALSE)==将成員變量的值賦值給控件,将數據從窗口顯示。

實例說明:

例如我們在對話框窗口中添加了3個editbox,然後将前兩個的值相加,然後在第三個editbox中輸出。

那麼我們可以做如下處理:

1。用類向導在3個editbox下添加3個變量,我們命名為m_num1,m_num2,m_num3。

2。然後我們可以多添加一個button控件,在其的click處理事件中,添加以下代碼:

UpdateData();//默認的缺省參數為TRUE,這樣,将EditBox控件的内容讀入到與其關聯的變量中

m_num3=m_num1+m_num2;

UpdateData(FALSE);//将變量的值,輸出到與其關聯的EditBox中

就可以了

函數返回值說明

bool類的函數,如果,所需數據設定了範圍。

合法返回1,否則返回0

函數使用注意點:

當你使用UpdateDate()函數的時候,你要清楚一個重要的點,那就是它的範圍是你調用它的類所代表的框架中生效。舉個例子:我們有一個主對話框,然後在其中建立了三個标簽頁。三個标簽頁分别關聯了三個類。那麼我們要在主對話框中使用标簽頁中關聯了一個編輯框的變量時,如果你使用UpdateData(false)的時候,你會發現沒有效果。你必須用标簽頁的類如CPage0page0;page0.UpdateData(false);才會達到你的目的。

注意:1.用于數據交換的DoDataExchange函數是不能被直接調用的,必須通過調用UpdateData()函數來調用DoDataExchange函數。所以在用到控件與關聯的成員變量交換數據時,要首先調用UpdateData()函數。

2.當模态對話框被創建時,在OnInitialDialog()函數裡framework自動的調用UpdateData(FALSE)。該函數的調用在對話框出現之前。而且在默認的接口函數OnOk()裡也調用了該函數UpdateData(TRUE)來獲取數據,如果調用成功,将會關閉對話框。(如果單擊Cancel按鈕,就不會調用該函數)

相關詞條

相關搜索

其它詞條