Udostępnij za pośrednictwem


Wymiana danych w oknie dialogowym

Jeśli używasz mechanizm DDX ustawieniu wartości początkowe w oknie dialogowym Zmienne składowe obiektu, zazwyczaj w swojej OnInitDialog obsługi lub konstruktora okno dialogowe.Niezwłocznie przed wyświetleniem okna dialogowego, mechanizm DDX framework przenosi wartości zmiennych do formantów w oknie dialogowym, w którym pojawiają się kiedy się pojawi się okno dialogowe w odpowiedzi na DoModal lub Create.Domyślna implementacja z OnInitDialog w CDialog wywołania UpdateData funkcji składowej klasy CWnd zainicjować formantów w oknie dialogowym.

Ten sam mechanizm przenosi wartości z formantów do zmiennych gdy użytkownik kliknie przycisk OK (lub przy każdym wywołaniu UpdateData funkcji składowej z argumentem TRUE).Okno dialogowe mechanizmu sprawdzania poprawności danych sprawdza poprawność wszelkich elementów danych, dla których określono reguły sprawdzania poprawności.

Na poniższym rysunku przedstawiono okno dialogowe wymiany danych.

Okno Wymiana danych

Okno dialogowe danych exchange

UpdateDatadziała w obu kierunkach, określony przez BOOL do niej przekazany parametr.Do przeprowadzenia w wymianie, UpdateData konfiguruje CDataExchange wywołań i obiekt klasy okno zastępowania CDialogw DoDataExchange funkcji składowej.DoDataExchangewymaga argumentu typu CDataExchange.CDataExchange Obiekt przekazywany do UpdateData reprezentuje kontekst giełdy, określający jako kierunek wymiany takich informacji.

Kiedy użytkownik (lub Kreatora kod) zastąpić DoDataExchange, określ wywołania jednej funkcji DDX dla elementu danych (kontrola).Każda funkcja DDX wie, jak do wymiany danych w obu kierunkach na podstawie kontekstu, dostarczonych przez CDataExchange argument przekazany do swojej DoDataExchange przez UpdateData.

MFC zawiera wiele funkcji DDX dla różnych rodzajów wymiany.W poniższym przykładzie pokazano DoDataExchange override, w których dwa DDX nazywane są funkcje i jednej funkcji 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);
}

DDX_ i DDV_ linie są mapowania danych.Funkcje DDX i DDV próbki przedstawione są odpowiednio formant pola wyboru i formantu pola edycji.

Jeśli użytkownik anuluje modalne okno dialogowe, OnCancel funkcji składowej zamyka okno dialogowe i DoModal zwraca wartość IDCANCEL.W takim przypadku nie są wymieniane dane między okna dialogowego i obiektu okno dialogowe.

Zobacz też

Koncepcje

Wymiana i walidacja danych w oknie dialogowym

Cykl życiowy okna dialogowego

Walidacja danych okna dialogowego