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 Validierung fehlschlägt. Setzt den Fokus auf das vorherige Steuerelement zurück und löst eine Ausnahme aus.
CDataExchange::P repareCtrl Bereitet das angegebene Steuerelement für den Datenaustausch oder die Überprüfung vor. Wird für Nicht-Bearbeiten-Steuerelemente verwendet.
CDataExchange::P repareEditCtrl Bereitet das angegebene Bearbeitungssteuer steuerelement für den Datenaustausch oder die Überprüfung vor.
CDataExchange::P repareOleCtrl Bereitet das angegebene OLE-Steuerelement für den Datenaustausch oder die Überprüfung vor. Wird für Nicht-Bearbeiten-Steuerelemente verwendet.

Öffentliche Datenmember

Name BESCHREIBUNG
CDataExchange::m_bSaveAndValidate Flag für die Richtung von DDX und DDV.
CDataExchange::m_pDlgWnd Das Dialogfeld oder Fenster, in dem der Datenaustausch stattfindet.

Hinweise

CDataExchange verfügt nicht über eine Basisklasse.

Verwenden Sie diese Klasse, wenn Sie Datenaustauschroutinen für benutzerdefinierte Datentypen oder Steuerelemente schreiben oder eigene Datenvalidierungsroutinen schreiben. Weitere Informationen zum Schreiben eigener DDX- und DDV finden Sie unter Technical Note 26 (Technischer Hinweis 26). Eine Übersicht über DDX und DDV finden Sie unter Dialog Data Exchange and Validation and Dialog Boxes(Dialogfelder für Dialogdaten und Validierung).

Ein CDataExchange -Objekt stellt die Kontextinformationen zur Verfügung, die für DDX und DDV erforderlich sind. Das Flag m_bSaveAndValidate FALSE, wenn DDX verwendet wird, um die Anfangswerte von Dialogsteuerelementen aus Datenelementen zu füllen. Das Flag m_bSaveAndValidate TRUE, wenn DDX verwendet wird, um die aktuellen Werte von Dialogsteuerelementen in Datenelemente zu setzen, und wenn DDV verwendet wird, um die Datenwerte zu überprüfen. Wenn bei DDV Überprüfung ein Fehler auftritt, DDV prozedur ein Meldungsfeld mit der Erläuterung des Eingabefehlers angezeigt. Die DDV-Prozedur wird dann Fail aufrufen, um den Fokus auf das verletzende Steuerelement zurückzusetzen, und löst eine Ausnahme aus, um den Überprüfungsprozess zu beenden.

Vererbungshierarchie

CDataExchange

Anforderungen

Header: afxwin.h

CDataExchange::CDataExchange

Rufen Sie diese Memberfunktion auf, um ein -Objekt zu CDataExchange erstellen.

CDataExchange(
    CWnd* pDlgWnd,
    BOOL bSaveAndValidate);

Parameter

pDlgWnd
Ein Zeiger auf das übergeordnete Fenster, das das Steuerelement enthält. In der Regel ist dies ein von CDialog abgeleitetes Objekt.

bSaveAndValidate
True gibt an, dass dieses Objekt Daten überprüft und dann Daten aus den Steuerelementen in die Member schreibt. False gibt an, dass dieses Objekt Daten von Membern in Steuerelemente verschieben wird.

Hinweise

Erstellen Sie CDataExchange selbst ein -Objekt, um zusätzliche Informationen im Datenaustauschobjekt zu speichern, die an die CWnd::D oDataExchange-Memberfunktion Ihres Fensters übergeben werden.

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 Dialogdatenvalidierungsvorgang (dialog data validation, DDV) fehlschlägt.

void Fail();

Hinweise

Fail stellt den Fokus und die Auswahl für das Steuerelement wieder auf, dessen Validierung fehlgeschlagen ist (wenn ein wiederherzustellende Steuerelement vor sich geht). Fail löst dann eine Ausnahme vom Typ CUserException aus, um den Überprüfungsprozess zu beenden. Die Ausnahme bewirkt, dass ein Meldungsfeld angezeigt wird, in dem der Fehler erläutert wird. Nachdem DDV Überprüfung fehlschlägt, kann der Benutzer Daten erneut in das anstirding-Steuerelement einleiten.

Implementatoren benutzerdefinierter DDV routinen können Fail aus ihren Routinen aufrufen, wenn eine Überprüfung fehlschlägt.

Weitere Informationen zum Schreiben eigener DDX- und DDV finden Sie unter Technical Note 26 (Technischer Hinweis 26). Eine Übersicht über DDX und DDV finden Sie unter Dialog Data Exchange and Validation and Dialog Box Topics (Themen zu Dialogdaten Exchange Validierung und Dialogfeldern).

CDataExchange::m_bSaveAndValidate

Dieses Flag gibt die Richtung eines DDX-Vorgangs (Dialog Data Exchange) an.

BOOL m_bSaveAndValidate;

Hinweise

Das Flag ist ungleich 0 (null CDataExchange ), wenn das -Objekt verwendet wird, um Daten aus den Dialogsteuerelementen in Datenelemente der Dialogklasse zu verschieben, nachdem der Benutzer die Steuerelemente bearbeitet hat. Das Flag ist 0 (null), wenn das -Objekt verwendet wird, um Dialogsteuerelemente aus Dialogklassen-Datenelementen zu initialisieren.

Das Flag ist auch während der Überprüfung der Dialogdaten (dialog data validation, DDV) ungleich DDV.

Weitere Informationen zum Schreiben eigener DDX- und DDV finden Sie unter Technical Note 26 (Technischer Hinweis 26). Eine Übersicht über DDX und DDV finden Sie unter Dialog Data Exchange and Validation and Dialog Box Topics (Themen zu Dialogdaten Exchange Validierung und Dialogfeldern).

CDataExchange::m_pDlgWnd

Enthält einen Zeiger auf das CWnd-Objekt, für das dialog data exchange (DDX) oder validation (DDV) stattfindet.

CWnd* m_pDlgWnd;

Hinweise

Dieses Objekt ist normalerweise ein CDialog-Objekt . Implementatoren benutzerdefinierter 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 finden Sie unter Technical Note 26 (Technischer Hinweis 26). Eine Übersicht über DDX und DDV finden Sie unter Dialog Data Exchange and Validation and Dialog Box Topics (Themen zu Dialogdaten Exchange Validierung und Dialogfeldern).

CDataExchange::P repareCtrl

Das Framework ruft diese Memberfunktion auf, um das angegebene Steuerelement für Dialogdatenaustausch (DDX) und Validierung (DDV) vorzubereiten.

HWND PrepareCtrl(int nIDC);

Parameter

nIDC
Die ID des Steuerelements, das für DDX oder die DDV.

Rückgabewert

Der HWND des Steuerelements, das für DDX oder die DDV.

Hinweise

Verwenden Sie stattdessen PrepareEditCtrl für Bearbeitungssteuerelemente. Verwenden Sie diese Memberfunktion für alle anderen Steuerelemente.

Die Vorbereitung besteht darin, das HWND des Steuerelements in der -Klasse zu CDataExchange speichern. Das Framework verwendet dieses Handle, um den Fokus auf das zuvor fokussierte Steuerelement zu setzen, wenn ein DDX- oder DDV ist.

Implementatoren benutzerdefinierter DDX- oder DDV-Routinen PrepareCtrl sollten für alle Steuerelemente ohne Bearbeitung aufrufen, für die sie Daten über DDX austauschen oder Daten über DDV.

Weitere Informationen zum Schreiben eigener DDX- und DDV finden Sie unter Technical Note 26 (Technischer Hinweis 26). Eine Übersicht über DDX und DDV finden Sie unter Dialog Data Exchange and Validation and Dialog Box Topics (Themen zu Dialogdaten Exchange Validierung und Dialogfeldern).

CDataExchange::P repareEditCtrl

Das Framework ruft diese Memberfunktion auf, um das angegebene Bearbeitungssteuerfeld für Dialogdatenaustausch (DDX) und Validierung (DDV) vorzubereiten.

HWND PrepareEditCtrl(int nIDC);

Parameter

nIDC
Die ID des Bearbeitungssteuer steuerelements, das für DDX oder die DDV.

Rückgabewert

Das HWND des Bearbeitungssteuer steuerelements, das für DDX oder DDV.

Hinweise

Verwenden Sie stattdessen PrepareCtrl für alle Steuerelemente ohne Bearbeitung.

Die Vorbereitung besteht aus zwei Teilen. Speichert zunächst PrepareEditCtrl das HWND des Steuerelements in der - CDataExchange Klasse. Das Framework verwendet dieses Handle, um den Fokus auf das zuvor fokussierte Steuerelement zu setzen, wenn ein DDX- oder DDV ist. Zweitens legt ein Flag in der -Klasse CDataExchange fest, um anzugeben, dass das Steuerelement, PrepareEditCtrl dessen Daten ausgetauscht oder überprüft werden, ein Bearbeitungssteuerzeichen ist.

Implementatoren benutzerdefinierter DDX- oder DDV-Routinen sollten für alle Bearbeitungssteuerelemente PrepareEditCtrl aufrufen, für die sie Daten über DDX austauschen oder Daten über DDV.

Weitere Informationen zum Schreiben eigener DDX- und DDV finden Sie unter Technical Note 26 (Technischer Hinweis 26). Eine Übersicht über DDX und DDV finden Sie unter Dialog Data Exchange and Validation and Dialog Box Topics (Themen zu Dialogdaten Exchange Validierung und Dialogfeldern).

CDataExchange::P repareOleCtrl

Das Framework ruft diese Memberfunktion auf, um das angegebene OLE-Steuerelement für Dialogdatenaustausch (DDX) und Validierung (DDV) vorzubereiten.

COleControlSite* PrepareOleCtrl(int nIDC);

Parameter

nIDC
Die ID des OLE-Steuerelements, das für DDX oder die DDV.

Rückgabewert

Ein Zeiger auf die OLE-Steuerelementsite.

Hinweise

Verwenden Sie stattdessen PrepareEditCtrl für Bearbeitungssteuerelemente oder PrepareCtrl für alle anderen Nicht-OLE-Steuerelemente.

Implementatoren benutzerdefinierter DDX- oder DDV-Routinen PrepareOleCtrl sollten für alle OLE-Steuerelemente aufrufen, für die sie Daten über DDX austauschen oder Daten über DDV.

Weitere Informationen zum Schreiben eigener DDX- und DDV finden Sie unter Technical Note 26 (Technischer Hinweis 26). Eine Übersicht über DDX und DDV finden Sie unter Dialog Data Exchange and Validation and Dialog Box Topics (Themen zu Dialogdaten Exchange Validierung und Dialogfeldern).

Weitere Informationen

MFC-BeispielANSICHTEX
Hierarchiediagramm
CWnd::DoDataExchange
CWnd::UpdateData