Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pokud používáte mechanismus DDX, nastavíte počáteční hodnoty členských proměnných objektu dialogového okna, obvykle v OnInitDialog
obslužné rutině nebo konstruktoru dialogového okna. Těsně před zobrazením dialogového okna mechanismus DDX architektury přenese hodnoty členských proměnných do ovládacích prvků v dialogovém okně, kde se zobrazí, když se samotné dialogové okno zobrazí v reakci na DoModal
nebo Create
. Výchozí implementace OnInitDialog
ve CDialog
volá členskou funkci UpdateData
třídy CWnd
k inicializaci ovládacích prvků v dialogovém okně.
Stejný mechanismus přenese hodnoty z ovládacích prvků do členských proměnných, když uživatel klikne na tlačítko OK (nebo pokaždé, když zavoláte UpdateData
členovou funkci s argumentem PRAVDA). Mechanismus ověřování dat dialogového okna ověřuje všechny datové položky, pro které jste zadali ověřovací pravidla.
Následující obrázek znázorňuje výměnu dat dialogového okna.
Výměna dat dialogového okna
UpdateData
funguje v obou směrech, jak je určeno parametrem BOOL předanými do něj. Chcete-li provést výměnu, UpdateData
nastaví objekt CDataExchange
a zavolá přepsanou funkci člena CDialog
vaší dialogové třídy DoDataExchange
.
DoDataExchange
přebírá argument typu CDataExchange
. Objekt CDataExchange
předaný UpdateData
představuje kontext výměny, který definuje takové informace, jako je směr výměny.
Když vy (nebo mistr kódu) přepíšete DoDataExchange
, zadáte volání jedné funkce DDX pro každý datový člen (ovládací prvek). Každá funkce DDX umí vyměňovat data v obou směrech na základě kontextu, který jí předává argument CDataExchange
skrze DoDataExchange
do UpdateData
.
MFC poskytuje mnoho funkcí DDX pro různé druhy výměny. Následující příklad ukazuje DoDataExchange
přepsání, ve kterém se volají dvě funkce DDX a jedna funkce DDV:
void CTestDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Check(pDX, IDC_MY_CHECKBOX, m_bVal);
DDX_Text(pDX, IDC_MY_TEXTBOX, m_strName);
DDV_MaxChars(pDX, m_strName, 20);
}
Řádky DDX_
a DDV_
jsou datová mapa. Ukázkové funkce DDX a DDV jsou určené pro ovládací prvek zaškrtávacího políčka a ovládací prvek edit-box.
Pokud uživatel zruší modální dialogové okno, OnCancel
členská funkce ukončí dialogové okno a DoModal
vrátí hodnotu IDCANCEL. V takovém případě se mezi dialogovým oknem a objektem dialogového okna nevymění žádná data.
Viz také
Výměna a ověření dat dialogového okna
Práce s dialogovými okny v prostředí MFC
Ověření dat dialogového okna