UpdateData( ) 用法


 
CWnd::UpdateData 
 

 

    BOOL UpdateData (BOOL bSaveAndValidate = TRUE);

   
              UpdateData(TRUE);
           可將控制項的值讀進變數中。   

           UpdateData(FALSE);
           則可將變數的值顯示至控制項。
 
               

          在預設的情況下,對話方塊在執行 OnInitDialog()函數時,會自動呼叫 UpdateData(FALSE);而對話方塊執行 OnOK()函數時,則是會自動呼叫 UpdateData(TRUE);

 
          另外,UpdateData( ) 的寫法等同於UpdateData(TRUE)。
                
          UpdateData( )  執行後,CxxDlg::DoDataExchange(CDataExchange* pDX)  函式,將會被呼叫執行以更新資料。
        
         CxxDlg::DoDataExchange(CDataExchange* pDX) 的使用範例如下:
 
 
    void CxxDlg::DoDataExchange(CDataExchange* pDX)
   {
          CDialog::DoDataExchange(pDX);
   
          DDX_Text(pDX, IDC_EDIT1, m_nText1);

          DDV_MinMaxInt(pDX, m_nText1, 1, 10); 

   }
        

            其中 DDX_ XX 代表作資料交換 (Data Exchange),DDV_XX 則代表作資料檢查 (Data Vaildation)。範例中,DDX_Text( ) 函數的第一個參數為 CDataExchange 物件的指標,第二個參數為控制項的 ID,第三個參數為與控制項交換資料的變數名稱。

 

            常用的編輯控制項 DDX 函數如下:

 

             void AFXAPI DDX_Text( CDataExchange *pDx, int nIDC, int & value);

          void AFXAPI DDX_Text( CDataExchange *pDx, int nIDC, UINT & value);

            void AFXAPI DDX_Text( CDataExchange *pDx, int nIDC, long & value);

            void AFXAPI DDX_Text( CDataExchange *pDx, int nIDC, DWORD & value);

            void AFXAPI DDX_Text( CDataExchange *pDx, int nIDC, CString & value);

            void AFXAPI DDX_Text( CDataExchange *pDx, int nIDC, float & value);

            void AFXAPI DDX_Text( CDataExchange *pDx, int nIDC, double & value);

 

Comments