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