Klasa CDataExchange

Obsługuje procedury wymiany danych okna dialogowego (DDX) i weryfikacji danych okna dialogowego (Przeglądarka danych diagnostycznych) używane przez klasy programu Microsoft Foundation.

Składnia

class CDataExchange

Członkowie

Konstruktory publiczne

Nazwa/nazwisko opis
CDataExchange::CDataExchange CDataExchange Tworzy obiekt.

Metody publiczne

Nazwa/nazwisko opis
CDataExchange::Fail Wywoływana w przypadku niepowodzenia walidacji. Resetuje fokus do poprzedniej kontrolki i zgłasza wyjątek.
CDataExchange::P repareCtrl Przygotowuje określoną kontrolkę do wymiany lub walidacji danych. Służy do kontrolek nieedytowanych.
CDataExchange::P repareEditCtrl Przygotowuje określoną kontrolkę edycji do wymiany lub walidacji danych.
CDataExchange::P repareOleCtrl Przygotowuje określoną kontrolkę OLE do wymiany lub walidacji danych. Służy do kontrolek nieedytowanych.

Publiczne elementy członkowskie danych

Nazwa/nazwisko opis
CDataExchange::m_bSaveAndValidate Flaga kierunku DDX i Przeglądarka danych diagnostycznych.
CDataExchange::m_pDlgWnd Okno dialogowe lub okno, w którym odbywa się wymiana danych.

Uwagi

CDataExchange nie ma klasy bazowej.

Użyj tej klasy, jeśli piszesz procedury wymiany danych dla niestandardowych typów danych lub kontrolek, lub jeśli piszesz własne procedury weryfikacji danych. Aby uzyskać więcej informacji na temat pisania własnych procedur DDX i Przeglądarka danych diagnostycznych, zobacz Uwaga techniczna 26. Aby zapoznać się z omówieniem DDX i Przeglądarka danych diagnostycznych, zobacz Dialog Data Exchange and Validation and Dialog Box (Wymiana danych i walidacja oraz okna dialogowe).

Obiekt CDataExchange zawiera informacje kontekstowe potrzebne do przeprowadzenia DDX i Przeglądarka danych diagnostycznych. Flaga m_bSaveAndValidate to FALSE, gdy DDX służy do wypełniania początkowych wartości kontrolek okna dialogowego z elementów członkowskich danych. Flaga m_bSaveAndValidate ma wartość TRUE, gdy DDX służy do ustawiania bieżących wartości kontrolek okna dialogowego na elementy członkowskie danych i gdy Przeglądarka danych diagnostycznych jest używana do sprawdzania poprawności wartości danych. Jeśli weryfikacja Przeglądarka danych diagnostycznych zakończy się niepowodzeniem, procedura Przeglądarka danych diagnostycznych wyświetli pole komunikatu z wyjaśnieniem błędu wejściowego. Następnie procedura Przeglądarka danych diagnostycznych spowoduje Fail zresetowanie fokusu do kontroli naruszenia i zgłoszenie wyjątku w celu zatrzymania procesu weryfikacji.

Hierarchia dziedziczenia

CDataExchange

Wymagania

Nagłówek: afxwin.h

CDataExchange::CDataExchange

Wywołaj tę funkcję składową CDataExchange , aby utworzyć obiekt.

CDataExchange(
    CWnd* pDlgWnd,
    BOOL bSaveAndValidate);

Parametry

pDlgWnd
Wskaźnik do okna nadrzędnego zawierającego kontrolkę. Zazwyczaj jest to obiekt pochodny CDialog.

bSaveAndValidate
Jeśli wartość TRUE, ten obiekt weryfikuje dane, a następnie zapisuje dane z kontrolek do elementów członkowskich. Jeśli wartość FALSE, ten obiekt przeniesie dane z elementów członkowskich do kontrolek.

Uwagi

Skonstruuj CDataExchange obiekt samodzielnie, aby przechowywać dodatkowe informacje w obiekcie wymiany danych w celu przekazania ich do funkcji składowej CWnd::D oDataExchange .

Przykład

CYourDataExchange dx(this, FALSE);
try
{
   DoDataExchange(&dx);
}
catch (CUserException *pe)
{
   // some part of the exchange went wrong
   // but the user has already been notified
   pe->Delete();
}

CDataExchange::Fail

Struktura wywołuje tę funkcję składową, gdy operacja sprawdzania poprawności danych okna dialogowego (Przeglądarka danych diagnostycznych) kończy się niepowodzeniem.

void Fail();

Uwagi

Fail przywraca fokus i zaznaczenie do kontrolki, której walidacja nie powiodła się (jeśli istnieje kontrolka do przywrócenia). Fail następnie zgłasza wyjątek typu CUserException , aby zatrzymać proces weryfikacji. Wyjątek powoduje wyświetlenie pola komunikatu z wyjaśnieniem błędu. Po Przeglądarka danych diagnostycznych weryfikacji nie powiedzie się, użytkownik może ponownie wywłaszać dane w kontrolce naruszenia.

Implementatory niestandardowych procedur Przeglądarka danych diagnostycznych mogą wywoływać Fail ze swoich procedur, gdy walidacja zakończy się niepowodzeniem.

Aby uzyskać więcej informacji na temat pisania własnych procedur DDX i Przeglądarka danych diagnostycznych, zobacz Uwaga techniczna 26. Aby zapoznać się z omówieniem DDX i Przeglądarka danych diagnostycznych, zobacz Tematy dotyczące wymiany danych i walidacji oraz okna dialogowego.

CDataExchange::m_bSaveAndValidate

Ta flaga wskazuje kierunek operacji wymiany danych okna dialogowego (DDX).

BOOL m_bSaveAndValidate;

Uwagi

Flaga jest niezerowa, jeśli CDataExchange obiekt jest używany do przenoszenia danych z kontrolek okna dialogowego do składowych danych klasy okna dialogowego po edycji kontrolek przez użytkownika. Flaga ma wartość zero, jeśli obiekt jest używany do inicjowania kontrolek okien dialogowych z składowych danych klasy okna dialogowego.

Flaga jest również niezerowa podczas sprawdzania poprawności danych okna dialogowego (Przeglądarka danych diagnostycznych).

Aby uzyskać więcej informacji na temat pisania własnych procedur DDX i Przeglądarka danych diagnostycznych, zobacz Uwaga techniczna 26. Aby zapoznać się z omówieniem DDX i Przeglądarka danych diagnostycznych, zobacz Tematy dotyczące wymiany danych i walidacji oraz okna dialogowego.

CDataExchange::m_pDlgWnd

Zawiera wskaźnik do obiektu CWnd, dla którego odbywa się wymiana danych okna dialogowego (DDX) lub walidacja (Przeglądarka danych diagnostycznych).

CWnd* m_pDlgWnd;

Uwagi

Ten obiekt jest zwykle obiektem CDialog . Implementatory niestandardowych procedur DDX lub Przeglądarka danych diagnostycznych mogą używać tego wskaźnika, aby uzyskać dostęp do okna dialogowego zawierającego kontrolki, na których działają.

Aby uzyskać więcej informacji na temat pisania własnych procedur DDX i Przeglądarka danych diagnostycznych, zobacz Uwaga techniczna 26. Aby zapoznać się z omówieniem DDX i Przeglądarka danych diagnostycznych, zobacz Tematy dotyczące wymiany danych i walidacji oraz okna dialogowego.

CDataExchange::P repareCtrl

Struktura wywołuje tę funkcję składową, aby przygotować określoną kontrolkę do wymiany danych okien dialogowych (DDX) i weryfikacji (Przeglądarka danych diagnostycznych).

HWND PrepareCtrl(int nIDC);

Parametry

NIDC
Identyfikator kontrolki, która ma być przygotowana na DDX lub Przeglądarka danych diagnostycznych.

Wartość zwracana

HWND kontrolki przygotowanej do DDX lub Przeglądarka danych diagnostycznych.

Uwagi

Zamiast tego użyj metody PrepareEditCtrl do edycji kontrolek; użyj tej funkcji składowej dla wszystkich innych kontrolek.

Przygotowanie składa się z przechowywania HWND kontrolki CDataExchange w klasie . Struktura używa tego uchwytu do przywrócenia fokusu do wcześniej ukierunkowanej kontrolki w przypadku awarii DDX lub Przeglądarka danych diagnostycznych.

Implementatory niestandardowych procedur DDX lub Przeglądarka danych diagnostycznych powinny wywoływać PrepareCtrl wszystkie kontrolki nieedytowane, dla których wymieniają dane za pośrednictwem DDX lub weryfikacji danych za pośrednictwem Przeglądarka danych diagnostycznych.

Aby uzyskać więcej informacji na temat pisania własnych procedur DDX i Przeglądarka danych diagnostycznych, zobacz Uwaga techniczna 26. Aby zapoznać się z omówieniem DDX i Przeglądarka danych diagnostycznych, zobacz Tematy dotyczące wymiany danych i walidacji oraz okna dialogowego.

CDataExchange::P repareEditCtrl

Struktura wywołuje tę funkcję składową, aby przygotować określoną kontrolkę edycji do wymiany danych okien dialogowych (DDX) i weryfikacji (Przeglądarka danych diagnostycznych).

HWND PrepareEditCtrl(int nIDC);

Parametry

NIDC
Identyfikator kontrolki edycji, która ma być przygotowana na DDX lub Przeglądarka danych diagnostycznych.

Wartość zwracana

HWND kontrolki edycji przygotowanej dla DDX lub Przeglądarka danych diagnostycznych.

Uwagi

Zamiast tego użyj metody PrepareCtrl dla wszystkich kontrolek nieedytacyjnych.

Przygotowanie składa się z dwóch rzeczy. PrepareEditCtrl Najpierw przechowuje HWND kontrolki CDataExchange w klasie . Struktura używa tego uchwytu do przywrócenia fokusu do wcześniej ukierunkowanej kontrolki w przypadku awarii DDX lub Przeglądarka danych diagnostycznych. Po drugie ustawia flagę w CDataExchange klasie, aby wskazać, PrepareEditCtrl że kontrolka, której dane są wymieniane lub weryfikowane, jest kontrolką edycji.

Implementatory niestandardowych procedur DDX lub Przeglądarka danych diagnostycznych powinny wywoływać PrepareEditCtrl wszystkie kontrolki edycji, dla których wymieniają dane za pośrednictwem DDX lub walidacji danych za pośrednictwem Przeglądarka danych diagnostycznych.

Aby uzyskać więcej informacji na temat pisania własnych procedur DDX i Przeglądarka danych diagnostycznych, zobacz Uwaga techniczna 26. Aby zapoznać się z omówieniem DDX i Przeglądarka danych diagnostycznych, zobacz Tematy dotyczące wymiany danych i walidacji oraz okna dialogowego.

CDataExchange::P repareOleCtrl

Struktura wywołuje tę funkcję składową, aby przygotować określoną kontrolkę OLE do wymiany danych dialogowych (DDX) i weryfikacji (Przeglądarka danych diagnostycznych).

COleControlSite* PrepareOleCtrl(int nIDC);

Parametry

NIDC
Identyfikator kontrolki OLE do przygotowania do DDX lub Przeglądarka danych diagnostycznych.

Wartość zwracana

Wskaźnik do lokacji sterowania OLE.

Uwagi

Zamiast tego użyj polecenia PrepareEditCtrl , aby edytować kontrolki lub PrepareCtrl dla wszystkich innych kontrolek innych niż OLE.

Implementatory niestandardowych procedur DDX lub Przeglądarka danych diagnostycznych powinny wywoływać PrepareOleCtrl wszystkie kontrolki OLE, dla których wymieniają dane za pośrednictwem DDX lub walidacji danych za pośrednictwem Przeglądarka danych diagnostycznych.

Aby uzyskać więcej informacji na temat pisania własnych procedur DDX i Przeglądarka danych diagnostycznych, zobacz Uwaga techniczna 26. Aby zapoznać się z omówieniem DDX i Przeglądarka danych diagnostycznych, zobacz Tematy dotyczące wymiany danych i walidacji oraz okna dialogowego.

Zobacz też

Przykładowy widok MFC
Wykres hierarchii
CWnd::D oDataExchange
CWnd::UpdateData