Udostępnij za pośrednictwem


Klasa CDataExchange

Obsługuje procedury wymiany danych okna dialogowego (DDX) i weryfikacji danych dialogowych (DDV) używane przez klasy programu Microsoft Foundation.

Składnia

class CDataExchange

Elementy członkowskie

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 DDV.
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 DDV, zobacz Technical Note 26 (Uwaga techniczna 26). Aby zapoznać się z omówieniem DDX i DDV, zobacz Dialog Data Exchange and Validation and Dialog Box (Wymiana danych i walidacja oraz okna dialogowe).

Obiekt CDataExchange udostępnia informacje kontekstowe potrzebne do przeprowadzenia DDX i DDV. 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, a gdy DDV jest używana do sprawdzania poprawności wartości danych. Jeśli weryfikacja DDV zakończy się niepowodzeniem, procedura DDV wyświetli pole komunikatu objaśniające błąd wejściowy. Następnie wywoła procedurę Fail DDV, aby zresetować fokus do kontroli naruszenia i zgłosi wyjątek, aby zatrzymać proces 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 (DDV) 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 niepomyślnego sprawdzania poprawności DDV użytkownik może ponownie wywłaszać dane w kontrolce naruszającej dane.

Implementatory niestandardowych procedur DDV mogą wywoływać Fail z ich procedur, gdy walidacja zakończy się niepowodzeniem.

Aby uzyskać więcej informacji na temat pisania własnych procedur DDX i DDV, zobacz Technical Note 26 (Uwaga techniczna 26). Aby zapoznać się z omówieniem DDX i DDV, zobacz Tematy dotyczące wymiany danych i sprawdzania poprawności 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 (DDV).

Aby uzyskać więcej informacji na temat pisania własnych procedur DDX i DDV, zobacz Technical Note 26 (Uwaga techniczna 26). Aby zapoznać się z omówieniem DDX i DDV, zobacz Tematy dotyczące wymiany danych i sprawdzania poprawności oraz okna dialogowego.

CDataExchange::m_pDlgWnd

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

CWnd* m_pDlgWnd;

Uwagi

Ten obiekt jest zwykle obiektem CDialog . Implementatory niestandardowych procedur DDX lub DDV 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 DDV, zobacz Technical Note 26 (Uwaga techniczna 26). Aby zapoznać się z omówieniem DDX i DDV, zobacz Tematy dotyczące wymiany danych i sprawdzania poprawności oraz okna dialogowego.

CDataExchange::P repareCtrl

Struktura wywołuje tę funkcję składową, aby przygotować określoną kontrolkę do wymiany danych okna dialogowego (DDX) i weryfikacji (DDV).

HWND PrepareCtrl(int nIDC);

Parametry

NIDC
Identyfikator kontrolki, która ma być przygotowana na DDX lub DDV.

Wartość zwracana

HWND kontrolki przygotowanej dla DDX lub DDV.

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 DDV.

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

Aby uzyskać więcej informacji na temat pisania własnych procedur DDX i DDV, zobacz Technical Note 26 (Uwaga techniczna 26). Aby zapoznać się z omówieniem DDX i DDV, zobacz Tematy dotyczące wymiany danych i sprawdzania poprawności 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 (DDV).

HWND PrepareEditCtrl(int nIDC);

Parametry

NIDC
Identyfikator kontrolki edycji, która ma być przygotowana na DDX lub DDV.

Wartość zwracana

HWND kontrolki edycji przygotowanej dla DDX lub DDV.

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 DDV. 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 DDV powinny wywoływać PrepareEditCtrl wszystkie kontrolki edycji, dla których wymieniają dane za pośrednictwem DDX lub walidacji danych za pośrednictwem DDV.

Aby uzyskać więcej informacji na temat pisania własnych procedur DDX i DDV, zobacz Technical Note 26 (Uwaga techniczna 26). Aby zapoznać się z omówieniem DDX i DDV, zobacz Tematy dotyczące wymiany danych i sprawdzania poprawności 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 (DDV).

COleControlSite* PrepareOleCtrl(int nIDC);

Parametry

NIDC
Identyfikator kontrolki OLE do przygotowania do DDX lub DDV.

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 DDV powinny wywoływać PrepareOleCtrl wszystkie kontrolki OLE, dla których wymieniają dane za pośrednictwem DDX lub walidacji danych za pośrednictwem DDV.

Aby uzyskać więcej informacji na temat pisania własnych procedur DDX i DDV, zobacz Technical Note 26 (Uwaga techniczna 26). Aby zapoznać się z omówieniem DDX i DDV, zobacz Tematy dotyczące wymiany danych i sprawdzania poprawności oraz okna dialogowego.

Zobacz też

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