Klasa CDataExchangeCDataExchange Class

Obsługuje procedury wymiany danych w oknie dialogowym (DDX) i narzędzia sprawdzania poprawności danych (DDV) używane przez klasy Microsoft Foundation.Supports the dialog data exchange (DDX) and dialog data validation (DDV) routines used by the Microsoft Foundation classes.

SkładniaSyntax

class CDataExchange

Elementy członkowskieMembers

Konstruktory publicznePublic Constructors

NazwaName OpisDescription
CDataExchange::CDataExchangeCDataExchange::CDataExchange Konstruuje CDataExchange obiekt.Constructs a CDataExchange object.

Metody publicznePublic Methods

NazwaName OpisDescription
CDataExchange:: niepowodzenieCDataExchange::Fail Wywoływana, gdy Walidacja nie powiedzie się.Called when validation fails. Resetuje fokus do poprzedniej kontrolki i zgłasza wyjątek.Resets focus to the previous control and throws an exception.
CDataExchange::P repareCtrlCDataExchange::PrepareCtrl Przygotowuje określoną kontrolkę do wymiany danych lub walidacji.Prepares the specified control for data exchange or validation. Użyj dla kontrolek nieedytowalnych.Use for nonedit controls.
CDataExchange::P repareEditCtrlCDataExchange::PrepareEditCtrl Przygotowuje określoną kontrolkę edycji do wymiany danych lub walidacji.Prepares the specified edit control for data exchange or validation.
CDataExchange::P repareOleCtrlCDataExchange::PrepareOleCtrl Przygotowuje określoną kontrolkę OLE do wymiany danych lub walidacji.Prepares the specified OLE control for data exchange or validation. Użyj dla kontrolek nieedytowalnych.Use for nonedit controls.

Publiczne elementy członkowskie danychPublic Data Members

NazwaName OpisDescription
CDataExchange:: m_bSaveAndValidateCDataExchange::m_bSaveAndValidate Flaga dla kierunku DDX i DDV.Flag for the direction of DDX and DDV.
CDataExchange:: m_pDlgWndCDataExchange::m_pDlgWnd Okno dialogowe lub okna, w którym odbywa się wymiana danych.The dialog box or window where the data exchange takes place.

UwagiRemarks

CDataExchange nie ma klasy bazowej.CDataExchange does not have a base class.

Użyj tej klasy, jeśli piszesz procedury wymiany danych dla niestandardowych typów danych lub kontrolek, lub jeśli piszesz własne procedury walidacji danych.Use this class if you are writing data exchange routines for custom data types or controls, or if you are writing your own data validation routines. Aby uzyskać więcej informacji na temat pisania własnych procedur DDX i DDV, zobacz Uwagi techniczne 26.For more information on writing your own DDX and DDV routines, see Technical Note 26. Aby zapoznać się z omówieniem programów DDX i DDV, zobacz temat wymiana i walidacja danych w oknie dialogowym .For an overview of DDX and DDV, see Dialog Data Exchange and Validation and Dialog Boxes.

CDataExchangeObiekt zawiera informacje kontekstowe, które są konieczne do DDX i DDV.A CDataExchange object provides the context information needed for DDX and DDV to take place. Flaga m_bSaveAndValidate ma wartość false, gdy DDX jest używany do wypełnienia początkowych wartości formantów okna dialogowego z elementów członkowskich danych.The flag m_bSaveAndValidate is FALSE when DDX is used to fill the initial values of dialog controls from data members. Flaga m_bSaveAndValidate ma wartość true, jeśli DDX jest używany do ustawiania bieżących wartości formantów okna dialogowego w składowych danych i gdy DDV jest używany do walidacji wartości danych.The flag m_bSaveAndValidate is TRUE when DDX is used to set the current values of dialog controls into data members and when DDV is used to validate the data values. Jeśli weryfikacja DDV nie powiedzie się, w procedurze DDV zostanie wyświetlone okno komunikatu z wyjaśnieniem błędu wejścia.If the DDV validation fails, the DDV procedure will display a message box explaining the input error. Procedura DDV będzie następnie wywoływana w Fail celu zresetowania fokusu do kontrolowanej kontrolki i zgłoszenie wyjątku, aby zatrzymać proces walidacji.The DDV procedure will then call Fail to reset the focus to the offending control and throw an exception to stop the validation process.

Hierarchia dziedziczeniaInheritance Hierarchy

CDataExchange

WymaganiaRequirements

Nagłówek: afxwin. hHeader: afxwin.h

CDataExchange::CDataExchangeCDataExchange::CDataExchange

Wywołaj tę funkcję elementu członkowskiego, aby skonstruować CDataExchange obiekt.Call this member function to construct a CDataExchange object.

CDataExchange(
    CWnd* pDlgWnd,
    BOOL bSaveAndValidate);

ParametryParameters

pDlgWndpDlgWnd
Wskaźnik do okna nadrzędnego, który zawiera kontrolkę.A pointer to the parent window that contains the control. Zwykle jest to obiekt pochodny CDialog.Usually this is a CDialog-derived object.

bSaveAndValidatebSaveAndValidate
W przypadku opcji TRUE ten obiekt sprawdza poprawność danych, a następnie zapisuje dane z formantów do elementów członkowskich.If TRUE, this object validates data, then writes data from the controls to the members. W przypadku wartości FALSE ten obiekt przeniesie dane z elementów członkowskich do kontrolek.If FALSE, this object will move data from members to controls.

UwagiRemarks

Utwórz CDataExchange obiekt samodzielnie, aby przechowywać dodatkowe informacje w obiekcie wymiany danych w celu przekazania do :D CWnd odataexchange funkcji członkowskiej.Construct a CDataExchange object yourself to store extra information in the data exchange object to pass to your window's CWnd::DoDataExchange member function.

PrzykładExample

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:: niepowodzenieCDataExchange::Fail

Struktura wywołuje tę funkcję członkowską, gdy operacja walidacji danych (DDV) okna dialogowego kończy się niepowodzeniem.The framework calls this member function when a dialog data validation (DDV) operation fails.

void Fail();

UwagiRemarks

Fail przywraca fokus i zaznaczenie do kontrolki, której Walidacja nie powiodła się (jeśli istnieje formant do przywrócenia).Fail restores the focus and selection to the control whose validation failed (if there is a control to restore). Fail następnie zgłasza wyjątek typu CUserException , aby zatrzymać proces walidacji.Fail then throws an exception of type CUserException to stop the validation process. Wyjątek powoduje wyświetlenie okna komunikatu z wyjaśnieniem błędu, który ma zostać wyświetlony.The exception causes a message box explaining the error to be displayed. Po niepowodzeniu walidacji DDV użytkownik może ponownie wprowadzić dane w kontrolce, która ma problemy.After DDV validation fails, the user can reenter data in the offending control.

Implementacje niestandardowych procedur DDV mogą wywoływać Fail z ich procedur, gdy weryfikacja nie powiedzie się.Implementors of custom DDV routines can call Fail from their routines when a validation fails.

Aby uzyskać więcej informacji na temat pisania własnych procedur DDX i DDV, zobacz Uwagi techniczne 26.For more information on writing your own DDX and DDV routines, see Technical Note 26. Aby zapoznać się z omówieniem DDX i DDV, zobacz temat okno dialogowe wymiana danych i walidacja oraz okno dialogowe.For an overview of DDX and DDV, see Dialog Data Exchange and Validation and Dialog Box Topics.

CDataExchange:: m_bSaveAndValidateCDataExchange::m_bSaveAndValidate

Ta flaga wskazuje kierunek operacji wymiany danych okna dialogowego (DDX).This flag indicates the direction of a dialog data exchange (DDX) operation.

BOOL m_bSaveAndValidate;

UwagiRemarks

Flaga jest różna od zera, jeśli CDataExchange obiekt jest używany do przenoszenia danych z kontrolek okna dialogowego do członków danych klasy okna dialogowego, gdy użytkownik edytuje kontrolki.The flag is nonzero if the CDataExchange object is being used to move data from the dialog controls to dialog-class data members after the user edits the controls. Flaga ma wartość zero, jeśli obiekt jest używany do inicjowania formantów okna dialogowego z elementów członkowskich danych klasy okna dialogowego.The flag is zero if the object is being used to initialize dialog controls from dialog-class data members.

Flaga jest również nierówna zero podczas walidacji danych okna dialogowego (DDV).The flag is also nonzero during dialog data validation (DDV).

Aby uzyskać więcej informacji na temat pisania własnych procedur DDX i DDV, zobacz Uwagi techniczne 26.For more information on writing your own DDX and DDV routines, see Technical Note 26. Aby zapoznać się z omówieniem DDX i DDV, zobacz temat okno dialogowe wymiana danych i walidacja oraz okno dialogowe.For an overview of DDX and DDV, see Dialog Data Exchange and Validation and Dialog Box Topics.

CDataExchange:: m_pDlgWndCDataExchange::m_pDlgWnd

Zawiera wskaźnik do obiektu CWnd , dla którego odbywa się wymiana danych (DDX) lub Walidacja (DDV).Contains a pointer to the CWnd object for which dialog data exchange (DDX) or validation (DDV) is taking place.

CWnd* m_pDlgWnd;

UwagiRemarks

Ten obiekt jest zwykle obiektem CDialog .This object is usually a CDialog object. Implementacje procedur niestandardowych DDX lub DDV mogą używać tego wskaźnika, aby uzyskać dostęp do okna dialogowego, które zawiera kontrolki, na których działają.Implementors of custom DDX or DDV routines can use this pointer to obtain access to the dialog window that contains the controls they are operating on.

Aby uzyskać więcej informacji na temat pisania własnych procedur DDX i DDV, zobacz Uwagi techniczne 26.For more information on writing your own DDX and DDV routines, see Technical Note 26. Aby zapoznać się z omówieniem DDX i DDV, zobacz temat okno dialogowe wymiana danych i walidacja oraz okno dialogowe.For an overview of DDX and DDV, see Dialog Data Exchange and Validation and Dialog Box Topics.

CDataExchange::P repareCtrlCDataExchange::PrepareCtrl

Struktura wywołuje tę funkcję elementu członkowskiego, aby przygotować określoną kontrolkę do wymiany danych (DDX) i walidacji (DDV).The framework calls this member function to prepare the specified control for dialog data exchange (DDX) and validation (DDV).

HWND PrepareCtrl(int nIDC);

ParametryParameters

nIDCnIDC
Identyfikator kontrolki, która ma zostać przygotowana do DDX lub DDV.The ID of the control to be prepared for DDX or DDV.

Wartość zwracanaReturn Value

Właściwość HWND kontrolki przygotowanej dla DDX lub DDV.The HWND of the control being prepared for DDX or DDV.

UwagiRemarks

Zamiast tego użyj PrepareEditCtrl do edycji kontrolek; Użyj tej funkcji elementu członkowskiego dla wszystkich innych kontrolek.Use PrepareEditCtrl instead for edit controls; use this member function for all other controls.

Przygotowanie składa się z przechowywania wartości HWND kontrolki w CDataExchange klasie.Preparation consists of storing the control's HWND in the CDataExchange class. Struktura używa tego uchwytu do przywrócenia fokusu do wcześniej skoncentrowanego formantu w przypadku awarii DDX lub DDV.The framework uses this handle to restore the focus to the previously focused control in the event of a DDX or DDV failure.

Implementacje procedur niestandardowych DDX lub DDV powinny wywoływać PrepareCtrl wszystkie kontrolki nieedytujące, dla których są wymieniane danymi za pośrednictwem DDX lub walidacji danych za pośrednictwem DDV.Implementors of custom DDX or DDV routines should call PrepareCtrl for all non-edit controls for which they are exchanging data via DDX or validating data via DDV.

Aby uzyskać więcej informacji na temat pisania własnych procedur DDX i DDV, zobacz Uwagi techniczne 26.For more information on writing your own DDX and DDV routines, see Technical Note 26. Aby zapoznać się z omówieniem DDX i DDV, zobacz temat okno dialogowe wymiana danych i walidacja oraz okno dialogowe.For an overview of DDX and DDV, see Dialog Data Exchange and Validation and Dialog Box Topics.

CDataExchange::P repareEditCtrlCDataExchange::PrepareEditCtrl

Struktura wywołuje tę funkcję członkowską w celu przygotowania określonej kontrolki edycji do wymiany danych (DDX) i walidacji (DDV).The framework calls this member function to prepare the specified edit control for dialog data exchange (DDX) and validation (DDV).

HWND PrepareEditCtrl(int nIDC);

ParametryParameters

nIDCnIDC
Identyfikator kontrolki edycji, która ma zostać przygotowana do DDX lub DDV.The ID of the edit control to be prepared for DDX or DDV.

Wartość zwracanaReturn Value

Właściwość HWND kontrolki edycji przygotowana do DDX lub DDV.The HWND of the edit control being prepared for DDX or DDV.

UwagiRemarks

Zamiast tego użyj PrepareCtrl dla wszystkich kontrolek, które nie są edytowane.Use PrepareCtrl instead for all non-edit controls.

Przygotowanie składa się z dwóch rzeczy.Preparation consists of two things. Najpierw PrepareEditCtrl przechowuje Właściwość HWND kontrolki w CDataExchange klasie.First, PrepareEditCtrl stores the control's HWND in the CDataExchange class. Struktura używa tego uchwytu do przywrócenia fokusu do wcześniej skoncentrowanego formantu w przypadku awarii DDX lub DDV.The framework uses this handle to restore the focus to the previously focused control in the event of a DDX or DDV failure. Następnie PrepareEditCtrl ustawia flagę w klasie, CDataExchange Aby wskazać, że formant, którego dane są wymieniane lub sprawdzane jest kontrolka edycji.Second, PrepareEditCtrl sets a flag in the CDataExchange class to indicate that the control whose data is being exchanged or validated is an edit control.

Implementacje procedur niestandardowych DDX lub DDV powinny wywoływać PrepareEditCtrl wszystkie kontrolki edycji, dla których są wymieniane danymi za pośrednictwem DDX lub walidacji danych za pośrednictwem DDV.Implementors of custom DDX or DDV routines should call PrepareEditCtrl for all edit controls for which they are exchanging data via DDX or validating data via DDV.

Aby uzyskać więcej informacji na temat pisania własnych procedur DDX i DDV, zobacz Uwagi techniczne 26.For more information on writing your own DDX and DDV routines, see Technical Note 26. Aby zapoznać się z omówieniem DDX i DDV, zobacz temat okno dialogowe wymiana danych i walidacja oraz okno dialogowe.For an overview of DDX and DDV, see Dialog Data Exchange and Validation and Dialog Box Topics.

CDataExchange::P repareOleCtrlCDataExchange::PrepareOleCtrl

Struktura wywołuje tę funkcję elementu członkowskiego, aby przygotować określoną kontrolkę OLE do wymiany danych (DDX) i walidacji (DDV).The framework calls this member function to prepare the specified OLE control for dialog data exchange (DDX) and validation (DDV).

COleControlSite* PrepareOleCtrl(int nIDC);

ParametryParameters

nIDCnIDC
Identyfikator kontrolki OLE, która ma zostać przygotowana do DDX lub DDV.The ID of the OLE control to be prepared for DDX or DDV.

Wartość zwracanaReturn Value

Wskaźnik do witryny kontrolki OLE.A pointer to the OLE control site.

UwagiRemarks

Zamiast tego użyj PrepareEditCtrl dla kontrolek edycji lub PrepareCtrl dla wszystkich innych formantów innych niż OLE.Use PrepareEditCtrl instead for edit controls or PrepareCtrl for all other non-OLE controls.

Implementacje procedur niestandardowych DDX lub DDV powinny być wywoływane PrepareOleCtrl dla wszystkich kontrolek OLE, dla których są wymieniane danymi za pośrednictwem DDX lub walidacji danych za pośrednictwem DDV.Implementors of custom DDX or DDV routines should call PrepareOleCtrl for all OLE controls for which they are exchanging data via DDX or validating data via DDV.

Aby uzyskać więcej informacji na temat pisania własnych procedur DDX i DDV, zobacz Uwagi techniczne 26.For more information on writing your own DDX and DDV routines, see Technical Note 26. Aby zapoznać się z omówieniem DDX i DDV, zobacz temat okno dialogowe wymiana danych i walidacja oraz okno dialogowe.For an overview of DDX and DDV, see Dialog Data Exchange and Validation and Dialog Box Topics.

Zobacz teżSee also

Przykład VIEWEX MFCMFC Sample VIEWEX
Wykres hierarchiiHierarchy Chart
CWnd::D oDataExchangeCWnd::DoDataExchange
CWnd:: UpdateDataCWnd::UpdateData