DDX 和 DDV 例程Visual Studio 2015 若要了解有關(guān) Visual Studio 2017 RC 的最新文檔,請(qǐng)參閱 Visual Studio 2017 RC 文檔。
此注釋說明對(duì)話框數(shù)據(jù)交換 (DDX) 和對(duì)話框數(shù)據(jù)驗(yàn)證 (DDV) 體系結(jié)構(gòu)。 還描述如何編寫 DDX_ 或 DDV_ 過程,以及如何擴(kuò)展類向?qū)в糜诶獭?/p> 所有的對(duì)話框數(shù)據(jù)函數(shù)完成與 C++ 代碼。 無特殊的資源或魔術(shù)宏。 機(jī)制的重點(diǎn)不是在每一對(duì)話框類重寫執(zhí)行對(duì)話框數(shù)據(jù)交換和驗(yàn)證的虛函數(shù)。 它始終被找到以此形式: void CMyDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX); // call base class
//{{AFX_DATA_MAP(CMyDialog)
<data_exchange_function_call>
<data_validation_function_call>
//}}AFX_DATA_MAP
}
特定格式 AFX 注釋允許 ClassWizard 定位和編輯此函數(shù)中的代碼。 代碼與兼容 ClassWizard 應(yīng)放置在特殊形式注釋。 在上面的示例中,<data_exchange_function_call> 窗體: DDX_Custom(pDX, nIDC, field); 并 <data_validation_function_call> 是可選的和形式: DDV_Custom(pDX, field, ...); 多個(gè) DDX_/DDV_對(duì)在每個(gè) 為任何對(duì)話框數(shù)據(jù)交換 (DDE) 例程和對(duì)話框數(shù)據(jù)驗(yàn)證例程參見“列表 afxdd_.h”隨 MFC。 對(duì)話框數(shù)據(jù)是:在 CMyDialog 類的數(shù)據(jù)成員。 在類似的結(jié)構(gòu)或的任何未存儲(chǔ)。 盡管我們調(diào)用此數(shù)據(jù)“對(duì)話框”,所有功能可在派生自 初始值數(shù)據(jù)中標(biāo)準(zhǔn) C++ 構(gòu)造函數(shù)設(shè)置,通常在具有
可以隨時(shí)調(diào)用 DDV_ 例程應(yīng)緊跟該 字段的DDX_ 例程。 不需要了解下面即可使用對(duì)話框數(shù)據(jù)。 但是,了解這如何在后臺(tái)工作可幫助您編寫自己交換或驗(yàn)證過程。
在設(shè)置 有其他
有多種方法來擴(kuò)展默認(rèn) DDX/DDV 機(jī)制。 您可以:
具有 DoDialogExchange 成員函數(shù)包括條件或任何其他的有效 C++ 語句用交互進(jìn)行交換和驗(yàn)證函數(shù)調(diào)用。 //{{AFX_DATA_MAP(CMyClass)
DDX_Check(pDX, IDC_SEX, m_bFemale);
DDX_Text(pDX, IDC_EDIT1, m_age);
//}}AFX_DATA_MAP
if (m_bFemale)
DDV_MinMax(pDX, age, 0, m_maxFemaleAge);
else
DDV_MinMax(pDX, age, 0, m_maxMaleAge);
ClassWizard 可以集成支持的子集 DDX/DDV 自定義您自己 DDX_ 和 DDV_ 到例程 ClassWizard 用戶界面。 如果打算重新使用特殊 DDX 和 DDV 例程在項(xiàng)目或在多項(xiàng)目,這樣做只花費(fèi)有利的。 若要執(zhí)行此,特定輸入在 DDX.CLW (Visual C++ 版本存儲(chǔ)在 APSTUDIO.INI 的此信息) 或項(xiàng)目中 .CLW 文件。 特定輸入可以輸入在項(xiàng)目的 .CLW 文件的通用信息。] 部分或在 DDX.CLW 文件的節(jié) [ExtraDDX] \Program Files\Microsoft Visual Studio\Visual C ++\bin 目錄中。 如果不存在,您可能需要?jiǎng)?chuàng)建 DDX.CLW 文件。 如果您在某項(xiàng)目計(jì)劃只使用自定義 DDX_/DDV_例程中,將項(xiàng)添加到項(xiàng)目 .CLW 文件的 [通用信息] 部分。 如果您計(jì)劃對(duì)許多項(xiàng)目的例程,添加輸入到 DDX.CLW 的 [ExtraDDX] 部分。 這些輸入特定常規(guī)格式為: ExtraDDXCount=n n 位置是數(shù)字 ExtraDDX?下面的行 ExtraDDX?=<keys>;<vb-keys>; <prompt>; <type>; <initValue>; <DDX_Proc> [;<DDV_Proc>; <prompt1>; <arg1>; [<prompt2>; <fmt2>]] 位置?第 N 是 1 - 指示 DDX 輸入定義列表。 每個(gè)字段通過分隔“;”字符。 字段及其用途介紹。 <鍵> 13,E = 編輯 C# = 兩個(gè)狀態(tài)復(fù)選框 c = 三種狀態(tài)復(fù)選框 = R 首先單選按鈕組中 左 = nonsorted 列表框 = l 排序列表框 = M 組合框 (與編輯項(xiàng)) " = nonsorted 拉列表 n = 排序的下拉列表 對(duì)于通常 DDX 例程使用傳輸“控件的”屬性 = 1,如果插入 DDX 應(yīng)被添加到列表默認(rèn) (開頭是向尾)。 <VB 鍵> <提示> <type> <VB 鍵> <initValue> <DDX_Proc> <注釋> <DDV_Proc> <arg> 后跟 1 或 2 DDV args: <promptX> <fmtX> = d int = u 未簽名 = D 長(zhǎng)期 int (即)。 = U 長(zhǎng)時(shí)間未簽名 (即一) f 為浮點(diǎn)數(shù) 雙重 F = = 字符串。 |
|
|