程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> 在對話框中進行數據交換和數據檢查

在對話框中進行數據交換和數據檢查

編輯:C語言基礎知識

MFC提供兩種方法在對話框中進行數據交換和數據檢查(Dialog data exchange/Dialog data validation),數據交換和數據檢查的思想是將某一變量和對話框中的一個子窗口進行關聯,然後通過調用BOOL UpdateData( BOOL bSaveAndValidate = TRUE )來指示MFC將變量中數據放入子窗口還是將子窗口中數據取到變量中並進行合法性檢查。

在進行數據交換時一個子窗口可以和兩種類型的變量相關聯,一種是控件(Control)對象,比如說按鈕子窗口可以和一個CButton對象相關聯,這種情況下你可以通過該對象直接控制子窗口,而不需要象上節中講的一樣使用GetDlgItem(IDC_CONTROL_ID)來得到窗口指針;一種是內容對象,比如說輸入框可以和一個CString對象關聯,也可以和一個UINT類型變量關聯,這種情況下你可以直接設置/獲取窗口中的輸入內容。

而數據檢查是在一個子窗口和一個內容對象相關聯時在存取內容時對內容進行合法性檢查,比如說當一個輸入框和一個CString對象關聯時,你可以設置檢查CString的對象的最長/最小長度,當輸入框和一個UINT變量相關聯時你可以設置檢查UINT變量的最大/最小值。在BOOL UpdateData( BOOL bSaveAndValidate = TRUE )被調用後,合法性檢查會自動進行,如果無法通過檢查MFC會彈出消息框進行提示,並返回FALSE。

設置DDX/DDV在VC中非常簡單,ClassWizard可以替你完成所有的工作,你只需要打開ClassWizard並選中Member Variables頁,如圖,<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

你可以看到所有可以進行關聯的子窗口ID列表,雙擊一個ID會彈出一個添加變量的對話框,如圖,

填寫相關的信息後按下確定按鈕就可以了。然後選中你剛才添加的變量在底部的輸入框中輸入檢查條件,如圖。

下面我們看一個例子,對話框上的子窗口如圖設置,各子窗口的ID和關聯的變量如下表:

ID

關聯的變量

作用

IDC_CHECK_TEST

BOOL m_fCheck

檢查框是否被選中

IDC_RADOI_TEST_1

int m_iSel

當前選擇的圓形按鈕的索引

IDC_COMBO_TEST

CString m_szCombo

組合框中選中的文本或是輸入的文本

IDC_EDIT_TEST

CString m_szEdit

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved