CDataExchange-Klasse
Unterstützt die Routinen für den Dialogdatenaustausch (Dialog Data Exchange, DDX) und die Dialogfelddatenvalidierung (Dialog Data Validation, DDV), die von den Microsoft Foundation-Klassen verwendet werden.
Syntax
class CDataExchange
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
CDataExchange::CDataExchange | Erstellt ein CDataExchange -Objekt. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
CDataExchange::Fail | Wird aufgerufen, wenn die Überprüfung fehlschlägt. Setzt den Fokus auf das vorherige Steuerelement zurück und löst eine Ausnahme aus. |
CDataExchange::P repareCtrl | Bereitet das angegebene Steuerelement auf den Datenaustausch oder die Validierung vor. Wird für nicht bearbeitete Steuerelemente verwendet. |
CDataExchange::P repareEditCtrl | Bereitet das angegebene Bearbeitungssteuerelement für den Datenaustausch oder die Validierung vor. |
CDataExchange::P repareOleCtrl | Bereitet das angegebene OLE-Steuerelement für den Datenaustausch oder die Validierung vor. Wird für nicht bearbeitete Steuerelemente verwendet. |
Öffentliche Datenmember
Name | Beschreibung |
---|---|
CDataExchange::m_bSaveAndValidate | Kennzeichnung für die Richtung von DDX und DDV. |
CDataExchange::m_pDlgWnd | Das Dialogfeld oder fenster, in dem der Datenaustausch stattfindet. |
Hinweise
CDataExchange
besitzt keine Basisklasse.
Verwenden Sie diese Klasse, wenn Sie Routinen für den Datenaustausch für benutzerdefinierte Datentypen oder Steuerelemente schreiben oder ihre eigenen Datenüberprüfungsroutinen schreiben. Weitere Informationen zum Schreiben eigener DDX- und DDV-Routinen finden Sie in technischem Hinweis 26. Eine Übersicht über DDX und DDV finden Sie in den Dialogfeldern "Datenaustausch" und "Validierung " und "Dialogfelder".
Ein CDataExchange
Objekt stellt die Kontextinformationen bereit, die für DDX und DDV erforderlich sind, um stattfinden zu können. Das Kennzeichen m_bSaveAndValidate ist FALSE, wenn DDX verwendet wird, um die Anfangswerte von Dialogfeldsteuerelementen aus Datenmember auszufüllen. Das Kennzeichen m_bSaveAndValidate ist TRUE, wenn DDX verwendet wird, um die aktuellen Werte von Dialogfeldsteuerelementen in Datenmember festzulegen und wenn DDV verwendet wird, um die Datenwerte zu überprüfen. Wenn die DDV-Überprüfung fehlschlägt, zeigt die DDV-Prozedur ein Meldungsfeld an, in dem der Eingabefehler erläutert wird. Die DDV-Prozedur ruft dann Fail
auf, um den Fokus auf das beleidigende Steuerelement zurückzusetzen und eine Ausnahme auszuwerfen, um den Überprüfungsprozess zu beenden.
Vererbungshierarchie
CDataExchange
Anforderungen
Header: afxwin.h
CDataExchange::CDataExchange
Rufen Sie diese Memberfunktion auf, um ein CDataExchange
Objekt zu erstellen.
CDataExchange(
CWnd* pDlgWnd,
BOOL bSaveAndValidate);
Parameter
pDlgWnd
Ein Zeiger auf das übergeordnete Fenster, das das Steuerelement enthält. In der Regel handelt es sich um ein von CDialog abgeleitetes Objekt.
bSaveAndValidate
If TRUE, this object validates data, then writes data from the controls to the members. Wenn FALSE, werden mit diesem Objekt Daten von Elementen in Steuerelemente verschoben.
Hinweise
Erstellen Sie ein CDataExchange
Objekt selbst, um zusätzliche Informationen im Datenaustauschobjekt zu speichern, um die CWnd::D oDataExchange-Memberfunktion Ihres Fensters zu übergeben.
Beispiel
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
Das Framework ruft diese Memberfunktion auf, wenn ein DDV-Vorgang (Dialog Data Validation) fehlschlägt.
void Fail();
Hinweise
Fail
Stellt den Fokus und die Auswahl auf das Steuerelement wieder her, dessen Überprüfung fehlgeschlagen ist (wenn ein Steuerelement wiederhergestellt werden soll). Fail
löst dann eine Ausnahme vom Typ "CUserException " aus, um den Überprüfungsprozess zu beenden. Die Ausnahme bewirkt, dass in einem Meldungsfeld der Fehler angezeigt wird. Nachdem die DDV-Überprüfung fehlschlägt, kann der Benutzer Daten im betreffenden Steuerelement erneut abrufen.
Implementoren von benutzerdefinierten DDV-Routinen können von ihren Routinen aufrufen Fail
, wenn eine Überprüfung fehlschlägt.
Weitere Informationen zum Schreiben eigener DDX- und DDV-Routinen finden Sie in technischem Hinweis 26. Eine Übersicht über DDX und DDV finden Sie unter "Dialog Data Exchange" und "Validation " und "Dialog Box Topics".
CDataExchange::m_bSaveAndValidate
Dieses Kennzeichen gibt die Richtung eines Dialogdatenaustauschvorgangs (DDX) an.
BOOL m_bSaveAndValidate;
Hinweise
Das Flag ist nicht null, wenn das CDataExchange
Objekt verwendet wird, um Daten aus den Dialogfeldsteuerelementen in Elemente der Dialogklassendaten zu verschieben, nachdem der Benutzer die Steuerelemente bearbeitet hat. Das Flag ist null, wenn das Objekt verwendet wird, um Dialogsteuerelemente aus Elementen der Dialogklassendaten zu initialisieren.
Das Flag ist auch während der Dialogdatenüberprüfung (DDV) nicht null.
Weitere Informationen zum Schreiben eigener DDX- und DDV-Routinen finden Sie in technischem Hinweis 26. Eine Übersicht über DDX und DDV finden Sie unter "Dialog Data Exchange" und "Validation " und "Dialog Box Topics".
CDataExchange::m_pDlgWnd
Enthält einen Zeiger auf das CWnd -Objekt, für das der Dialogdatenaustausch (Dialog Data Exchange, DDX) oder die Überprüfung (DDV) stattfindet.
CWnd* m_pDlgWnd;
Hinweise
Dieses Objekt ist in der Regel ein CDialog-Objekt . Implementierungen von benutzerdefinierten DDX- oder DDV-Routinen können diesen Zeiger verwenden, um Zugriff auf das Dialogfeld zu erhalten, das die Steuerelemente enthält, auf denen sie arbeiten.
Weitere Informationen zum Schreiben eigener DDX- und DDV-Routinen finden Sie in technischem Hinweis 26. Eine Übersicht über DDX und DDV finden Sie unter "Dialog Data Exchange" und "Validation " und "Dialog Box Topics".
CDataExchange::P repareCtrl
Das Framework ruft diese Memberfunktion auf, um das angegebene Steuerelement für den Dialogdatenaustausch (DDX) und die Validierung (DDV) vorzubereiten.
HWND PrepareCtrl(int nIDC);
Parameter
nIDC
Die ID des Steuerelements, das für DDX oder DDV vorbereitet werden soll.
Rückgabewert
Der HWND des Steuerelements, das für DDX oder DDV vorbereitet wird.
Hinweise
Verwenden Sie "PrepareEditCtrl" stattdessen für Bearbeitungssteuerelemente. Verwenden Sie diese Memberfunktion für alle anderen Steuerelemente.
Die Vorbereitung besteht darin, den HWND des Steuerelements in der CDataExchange
Klasse zu speichern. Das Framework verwendet dieses Handle, um den Fokus auf das zuvor fokussierte Steuerelement im Falle eines DDX- oder DDV-Fehlers wiederherzustellen.
Implementierungen von benutzerdefinierten DDX- oder DDV-Routinen sollten alle Nichtbearbeitungssteuerelemente aufrufen PrepareCtrl
, für die sie Daten über DDX austauschen oder Daten über DDV validieren.
Weitere Informationen zum Schreiben eigener DDX- und DDV-Routinen finden Sie in technischem Hinweis 26. Eine Übersicht über DDX und DDV finden Sie unter "Dialog Data Exchange" und "Validation " und "Dialog Box Topics".
CDataExchange::P repareEditCtrl
Das Framework ruft diese Memberfunktion auf, um das angegebene Bearbeitungssteuerelement für den Dialogdatenaustausch (DDX) und die Validierung (DDV) vorzubereiten.
HWND PrepareEditCtrl(int nIDC);
Parameter
nIDC
Die ID des Bearbeitungssteuerelements, das für DDX oder DDV vorbereitet werden soll.
Rückgabewert
Der HWND des Bearbeitungssteuerelements, das für DDX oder DDV vorbereitet wird.
Hinweise
Verwenden Sie "PrepareCtrl " stattdessen für alle Nichtbearbeitungssteuerelemente.
Die Vorbereitung besteht aus zwei Dingen. PrepareEditCtrl
Speichert zunächst den HWND des Steuerelements in der CDataExchange
Klasse. Das Framework verwendet dieses Handle, um den Fokus auf das zuvor fokussierte Steuerelement im Falle eines DDX- oder DDV-Fehlers wiederherzustellen. Legen Sie zweitens ein Flag in der CDataExchange
Klasse fest, um anzugeben, PrepareEditCtrl
dass das Steuerelement, dessen Daten ausgetauscht oder überprüft werden, ein Bearbeitungssteuerelement ist.
Implementierungen von benutzerdefinierten DDX- oder DDV-Routinen sollten alle Bearbeitungssteuerelemente aufrufen PrepareEditCtrl
, für die sie Daten über DDX austauschen oder Daten über DDV validieren.
Weitere Informationen zum Schreiben eigener DDX- und DDV-Routinen finden Sie in technischem Hinweis 26. Eine Übersicht über DDX und DDV finden Sie unter "Dialog Data Exchange" und "Validation " und "Dialog Box Topics".
CDataExchange::P repareOleCtrl
Das Framework ruft diese Memberfunktion auf, um das angegebene OLE-Steuerelement für den Dialogdatenaustausch (DDX) und die Validierung (DDV) vorzubereiten.
COleControlSite* PrepareOleCtrl(int nIDC);
Parameter
nIDC
Die ID des OLE-Steuerelements, das für DDX oder DDV vorbereitet werden soll.
Rückgabewert
Ein Zeiger auf die OLE-Steuerelementwebsite.
Hinweise
Verwenden Sie "PrepareEditCtrl " stattdessen für Bearbeitungssteuerelemente oder PrepareCtrl für alle anderen Nicht-OLE-Steuerelemente.
Implementierungen von benutzerdefinierten DDX- oder DDV-Routinen sollten alle OLE-Steuerelemente aufrufen PrepareOleCtrl
, für die sie Daten über DDX austauschen oder Daten über DDV validieren.
Weitere Informationen zum Schreiben eigener DDX- und DDV-Routinen finden Sie in technischem Hinweis 26. Eine Übersicht über DDX und DDV finden Sie unter "Dialog Data Exchange" und "Validation " und "Dialog Box Topics".
Siehe auch
MFC-BeispielANSICHTEX
Hierarchiediagramm
CWnd::D oDataExchange
CWnd::UpdateData