CDialog-Klasse
Die Basisklasse verwendet zum Anzeigen von Dialogfeldern auf dem Bildschirm.
class CDialog : public CWnd
Mitglieder
Öffentliche Konstruktoren
Name |
Description |
---|---|
Erstellt ein CDialog-Objekt. |
Öffentliche Methoden
Name |
Description |
---|---|
Initialisiert das CDialog-Objekt.Stellt ein nicht modales Dialogfeld erstellt und fügt es dem CDialog-Objekt. |
|
Stellt ein nicht modales Dialogfeld aus einer Dialogfeldvorlage im Arbeitsspeicher erstellt (nicht ressourcenbasiert). |
|
Ruft ein modales Dialogfeld auf und gibt zurück, wenn die. |
|
Schließt ein modales Dialogfeld. |
|
Ruft die ID des standardmäßigen Pushbutton-Steuerelements für ein Dialogfeld. |
|
Verschiebt den Fokus auf ein angegebenes Dialogfeld-Steuerelement im Dialogfeld. |
|
Stellt ein modales Dialogfeld aus einer Dialogfeldvorlage im Arbeitsspeicher erstellt (nicht ressourcenbasiert).Die Parameter werden gespeichert, bis die Funktion DoModal aufgerufen wurde. |
|
Konvertiert die Dialogeinheiten eines Rechtecks, um Einheiten zu stößt. |
|
Verschiebt den Fokus auf das nächste Dialogfeld-Steuerelement im Dialogfeld. |
|
Überschreiben Sie, um von Dialogfeldinitialisierung zu erweitern. |
|
Überschreiben Sie, um die Schriftarten anzugeben, dass ein Dialogfeld-Steuerelement, zu verwenden ist, beim Zeichnen von Text. |
|
Verschiebt den Fokus auf das vorherige Dialogfeld-Steuerelement im Dialogfeld. |
|
Ändert das standardmäßige Pushbutton-Steuerelement für ein Dialogfeld mit einem angegebenen Pushbutton. |
|
Legt eine ID der kontextbezogenen Hilfe für das Dialogfeld fest. |
Geschützte Methoden
Name |
Description |
---|---|
Überschreiben Sie, um die Schaltfläche Abbrechen oder der ESC-TASTEen-Aktion auszuführen.Standardmäßig wird das Dialogfeld und die DoModal gibt IDCANCEL. |
|
Überschreiben Sie, um die Aktion auf OK in einem modalen Dialogfeld auszuführen.Standardmäßig wird das Dialogfeld und die DoModal gibt IDOK. |
Hinweise
Dialogfelder gibt zwei Typen von Mutexen: modale und nicht modale.Ein modales Dialogfeld muss vom Benutzer geschlossen werden, bevor die Anwendung weiterhin.Ein nicht modales Dialogfeld ermöglicht dem Benutzer, um das Dialogfeld anzuzeigen und zu einer anderen Aufgabe zurückzukehren, ohne das Dialogfeld abzubrechen oder zu entfernen.
Ein Objekt CDialog ist eine Dialogfeldvorlage und des CDialog von abgeleitete Klasse.Verwenden Sie den Dialog-Editor, um die Dialogfeldvorlage zu erstellen und in einer Ressource zu speichern, verwenden Sie den Hinzufügens-Klassenassistenten, um eine Klasse erstellen, die von CDialog abgeleitet wird.
Ein Dialogfeld, wie jedes andere Fenster, empfängt Nachrichten von Windows.In einem Dialogfeld können Sie an den Behandlungsbenachrichtigungsmeldungen von den Steuerelementen des Dialogfelds seit dem besonders relevant, das ist, wie der Benutzer auf das Dialogfeld interagiert.Verwenden Sie das Eigenschaftenfenster, um auszuwählen, welche Meldungen Sie behandeln möchten und es die entsprechenden Meldungszuordnungseinträge und die Meldungshandlermemberfunktionen der Klasse selbst eingefügt.Sie müssen nur anwendungsspezifischen Code in den Handlermemberfunktionen schreiben.
Wenn Sie es vorziehen, können Sie Meldungszuordnungseinträge und Memberfunktionen immer manuell schreiben.
Mit trivialsten im Dialogfeld fügen Sie Membervariablen der abgeleiteten Dialogfeldklasse zum Speichern von Daten hinzu, die in die Steuerelemente des Dialogfelds vom Benutzer eingegebenen Daten oder für den Benutzer.Sie können den Assistenten zum Hinzufügen von Variablen verwenden, um Membervariablen erstellen und mit Steuerelementen zuzuordnen.Gleichzeitig wählen Sie einen Variablentyp und einen zulässigen Wertebereich für jede Variable aus.Der Code-Assistent fügt die Membervariablen der abgeleiteten Dialogfeldklasse hinzu.
Eine Datenumsetzung wird generiert, um den Austausch von Daten zwischen den Membervariablen und den Steuerelementen des Dialogfelds automatisch zu behandeln.Die Datenumsetzung bietet Funktionen, die die Steuerelemente im Dialogfeld mit den richtigen Werten initialisieren, die Daten abrufen und die Daten überprüfen.
Um ein modales Dialogfeld zu erstellen, erstellen Sie ein Objekt auf dem Stapel mithilfe des Konstruktors für die abgeleitete Dialogfeldklasse und rufen Sie dann auf DoModal um das Dialogfeld und ihre Steuerelemente zu erstellen.Wenn Sie ein nicht modales Dialogfeld erstellen möchten, rufen Sie Create im Konstruktor der Dialogfeldklasse auf.
Sie können eine Vorlage im Arbeitsspeicher auch erstellen, indem Sie eine DLGTEMPLATE Datenstruktur verwenden, wie in Windows SDK beschrieben.Nachdem Sie ein CDialog-Objekt erstellen, rufen Sie CreateIndirect auf, um ein nicht modales Dialogfeld oder Aufruf InitModalIndirect und DoModal erstellen, um ein modales Dialogfeld zu erstellen.
Die Austausch- und ValidierungsDatenumsetzung wird in eine Überschreibung von CWnd::DoDataExchange geschrieben, die der neuen Dialogfeldklasse hinzugefügt wird.Siehe die DoDataExchange-Memberfunktion in CWnd für mehr auf der Austausch- und Validierungsfunktionalität.
rufen der Programmierer und Framework DoDataExchange indirekt durch einen Aufruf CWnd::UpdateData auf.
Das Framework ruft UpdateData auf, wenn der Benutzer auf die Schaltfläche "OK" klickt, um ein modales Dialogfeld zu schließen.(Die Daten werden nicht abgerufen, wenn auf die Schaltfläche Abbrechen geklickt wird). Die Standardimplementierung von OnInitDialog ruft auch UpdateData auf, um die Anfangswerte der Steuerelemente festlegen.Sie überschreiben in der Regel OnInitDialog, um Steuerelemente weiter zu initialisieren.OnInitDialog wird schließlich die Dialogfeld-Steuerelemente aufgerufen werden erstellt und vor dem Dialogfeld wird angezeigt.
Sie können CWnd::UpdateData während der Ausführung von einem modalen oder von einem nicht modalen Dialogfeld jederzeit aufrufen.
Wenn Sie ein Dialogfeld manuell entwickeln, fügen Sie die erforderlichen Membervariablen der abgeleiteten Dialogfeldklasse sich hinzu, und Sie fügen Memberfunktionen hinzu, um diese Werte festzulegen oder abzurufen.
Ein modales Dialogfeld schließt automatisch, wenn der Benutzer die OK oder Abbrechen klickt, oder wenn der Code die EndDialog-Memberfunktion aufruft.
Wenn Sie ein nicht modales Dialogfeld, immer überschreiben Sie die OnCancel-Memberfunktion und rufen Sie DestroyWindow aus ihr auf.Rufen Sie nicht die Basisklasse CDialog::OnCancel auf, da sie EndDialog aufruft, die das Dialogfeld nicht sichtbar erstellt, jedoch nicht beschädigt wird.Sie sollten PostNcDestroy für nicht modale Dialogfelder auch überschreiben, um this zu löschen, da nicht modale Dialogfelder normalerweise mit new zugeordnet werden.Modale Dialogfelder werden normalerweise auf den Frame erstellt und nicht PostNcDestroy Bereinigung erfordern.
Weitere Informationen zu CDialog, finden Sie unter:
Knowledge Base-Artikel Q262954: HOWTO: Erstellen Sie ein Resizeable-Dialogfeld mit Bildlaufleisten erstellt
Vererbungshierarchie
CDialog
Anforderungen
Header: afxwin.h