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