對話框數據交換和驗證機制

對話框數據交換和驗證機制


    在VC中,所有的對話框函數都是使用C++代碼實現的,它並沒有採用特殊的資源或“奇特”的宏,但卻可以很好地實現用戶與應用程序之間的交互工作,這裏的關鍵就在於對話框應用程序中廣泛採用的對話框數據交換和驗證機制。
    對話框數據交換(Dialog Data Exchange,DDE)用於初始化對話框中的控件並獲取用戶的數據輸入,而對話框數據驗證(Dialog Data Validation,DDV)則用於驗證對話框中數據輸入的有效性。MFC在每個對話框類中提供了一個用於重載的虛函數——DoData Exchange來實現對話框數據交換和驗證工作。
•    對話框數據交換
    如果使用DDE機制,則通常在OnInitDialog程序或對話框構造函數中設置對話框對象成員變量的初始值。在對話框即將顯示前,應用程序框架的DDE機制將成員變量的值傳遞給對話框的控件,當對話框響應DoModal或Create而被顯示時,對話框控件將“顯示”這些值。Cdialog類中的OnInitDialog函數默認時將調用CWnd類的UpdateData成員函數初始化對話框中的控件。UpdateData函數的原型如下:
    BOOL UpdateData( BOOL bSaveAndValidate = TRUE );
    函數參數爲TRUE,即將對話框及其控件中的數據傳遞給程序代碼中的成員變量;函數參數爲FALSE,即將類中的數據狀態傳遞給對話框及其控件。
當     用戶重載DoDataExchange函數時,也就爲每一個數據成員(控件)指定了一個DDE函數調用。
•    對話框數據驗證
     除了調用DDE參數指定數據交換外,用戶還可以使用DDV函數進行對話框數據驗證。在調用控件的DDE函數後,必須立即調用該控件的DDV函數。大部分DDV函數的原型如下所示。
    DDV_MinMaxCustom(pDX, Data, MinData, MaxData);
    其中,參數pDX是一個指向CdataExchange對象的指針,參數Data中存放着即將被驗證的數據,後兩個參數用於定製數據的範圍。
     如果僅僅需要使用對話框數據,一般沒有必要了解數據交換/驗證的核心內容。但在瞭解了數據交換和驗證的實質後,用戶就可以編寫自己的數據交換和驗證代碼,定製DDE/DDV。

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/broadview2006/archive/2009/06/05/4243927.aspx

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章