Výměna dat dialogových oken
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ání UpdateData
členské funkce třídy CWnd
inicializovat ovládací prvky 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ých oken
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í CDataExchange
objekt a zavolá přepsání třídy dialogového CDialog
okna členská DoDataExchange
funkce. 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ž přepíšete ( DoDataExchange
nebo průvodce kódem), zadáte volání jedné funkce DDX na datový člen (ovládací prvek). Každá funkce DDX ví, jak vyměňovat data v obou směrech na základě kontextu zadaného CDataExchange
argumentem předaného vaší DoDataExchange
službou 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 Prohlížeč diagnostických dat funkce:
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);
}
DDV_
Řádky DDX_
jsou mapování dat. Ukázkové funkce DDX a Prohlížeč diagnostických dat jsou určené pro ovládací prvek zaškrtávacího políčka a ovládací prvek pro úpravy.
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ěřování dat dialogových oken
Práce s dialogovými okny v prostředí MFC
Ověřování dat dialogového okna