共找到2條詞條名為DDX的結果 展開
- 炒股軟體“大智慧”功能
- 對話框數據交換
DDX
對話框數據交換
DDX 機制,則通常在 OnInitDialog 處理程序或對話框構造函數中設置對話框對象成員變數的初始值。在對話框即將顯示前,框架的 DDX 機制將成員變數的值傳輸給對話框中的控制項,當對話框本身為響應 DoModal 或 Create 而出現時,這些值即出現在該對話框中。CDialog 中 OnInitDialog 的默認實現調用 CWnd 類的 UpdateData 成員函數以初始化對話框中的控制項。
當用戶單擊“確定”按鈕(或任何時候調用參數為 TRUE 的 UpdateData 成員函數)時,同樣是該機制將控制項中的值傳輸到成員變數。對話框數據確認(使有效)機制將使符合您指定驗證規則的任何數據項有效。
目錄
編程術語,Dialog Data Exchange 。

對話框數據交換
這段話的大體意思是:
下圖闡釋了對話框數據交換。
對話框數據交換
正如傳遞給它的 BOOL 參數所指定的那樣,UpdateData 進行雙向交換。為了執行交換,UpdateData 設置 CDataExchange 對象並調用對話框類對 CDialog 的 DoDataExchange 成員函數的重寫。DoDataExchange 採用 CDataExchange 類型的參數。傳遞給 UpdateData 的 CDataExchange 對象表示交換的上下文,它定義交換方向等信息。
當您(或某個代碼嚮導)重寫 DoDataExchange 時,也就指定了對每一數據成員(控制項)的一個 DDX 函數的調用。UpdateData 傳遞給您的 DoDataExchange 一個 CDataExchange 參數,每個 DDX 函數都知道如何根據該參數所提供的上下文在兩個方向交換數據。
void CMyDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX); // Call base class version
DDX_Check(pDX, IDC_MY_CHECKBOX, m_bVar);
DDX_Text(pDX, IDC_MY_TEXTBOX, m_strName);
DDV_MaxChars(pDX, m_strName, 20);
}
DDX_ 行和 DDV_ 行是數據映射。顯示的示例 DDX 和 DDV 函數分別用於複選框 (CheckBox) 控制項和編輯框控制項。
如果用戶取消有模式對話框,則 OnCancel 成員函數終止該對話框,並且 DoModal 返回 IDCANCEL 值。在此情況下,對話框和對話框對象之間不進行任何數據交換。