Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn Sie den DDX-Mechanismus verwenden, legen Sie die Anfangswerte der Membervariablen des Dialogfeldobjekts fest, in der Regel im Handler oder im OnInitDialog
Dialogkonstruktor. Unmittelbar vor der Anzeige des Dialogfelds überträgt der DDX-Mechanismus des Frameworks die Werte der Membervariablen an die Steuerelemente im Dialogfeld, wo sie angezeigt werden, wenn das Dialogfeld selbst als Reaktion auf DoModal
oder Create
angezeigt wird. Die Standardimplementierung von OnInitDialog
in CDialog
ruft die Mitgliedsfunktion UpdateData
der Klasse CWnd
auf, um die Steuerelemente im Dialogfeld zu initialisieren.
Derselbe Mechanismus überträgt Werte von den Steuerelementen an die Membervariablen, wenn der Benutzer auf die Schaltfläche "OK" klickt (oder wenn Sie die UpdateData
Memberfunktion mit dem Argument TRUE aufrufen). Der Überprüfungsmechanismus für Dialogdaten überprüft alle Datenelemente, für die Sie Gültigkeitsprüfungsregeln angegeben haben.
Die folgende Abbildung zeigt den Austausch von Dialogdaten.
Dialog-Datenaustausch
UpdateData
funktioniert in beide Richtungen, wie vom BOOL-Parameter angegeben, der an ihn übergeben wird. Um den Austausch durchzuführen, richtetUpdateData
ein CDataExchange
-Objekt ein und ruft die Überschreibung der CDialog
-Memberfunktiom DoDataExchange
durch Ihre Dialogklasse auf. DoDataExchange
verwendet ein Argument vom Typ CDataExchange
. Ein an CDataExchange
übergebenes UpdateData
Objekt stellt den Kontext des Austauschs dar und definiert Informationen wie die Richtung des Austauschs.
Wenn Sie (oder ein Code-Assistent) DoDataExchange
überschreiben, geben Sie pro Datenmitglied (Steuerelement) einen Aufruf einer DDX-Funktion an. Jede DDX-Funktion weiß, wie Daten in beide Richtungen basierend auf dem Kontext, der durch das CDataExchange
-Argument von DoDataExchange
an Ihr UpdateData
übergeben wird, ausgetauscht werden.
MFC bietet viele DDX-Funktionen für verschiedene Arten von Austausch. Das folgende Beispiel zeigt ein DoDataExchange
Überschreiben, in dem zwei DDX-Funktionen und eine DDV-Funktion aufgerufen werden:
void CTestDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Check(pDX, IDC_MY_CHECKBOX, m_bVal);
DDX_Text(pDX, IDC_MY_TEXTBOX, m_strName);
DDV_MaxChars(pDX, m_strName, 20);
}
Die DDX_
und DDV_
-Linien sind eine Datenzuordnung. Die dargestellten DDX- und DDV-Beispielfunktionen sind für ein Kontrollkästchen-Steuerelement bzw. ein Bearbeitungsfeld-Steuerelement vorgesehen.
Wenn der Benutzer ein modales Dialogfeld abbricht, beendet die OnCancel
Memberfunktion das Dialogfeld und DoModal
gibt den Wert IDCANCEL zurück. In diesem Fall werden keine Daten zwischen dem Dialogfeld und dem Dialogobjekt ausgetauscht.
Siehe auch
Dialogdatenaustausch und Validierung
Arbeiten mit Dialogfeldern in MFC
Dialogdatenüberprüfung