Beispiel: Anzeigen eines Dialogfelds mit einem Menübefehl
Dieses Thema enthält Verfahren für:
Anzeigen eines modalen Dialogfelds über einen Menübefehl.
Anzeigen eines Dialogfelds ohne Modus über einen Menübefehl.
Beide Beispielprozeduren gelten für MFC-Anwendungen und funktionieren in einer Anwendung, die Sie mit dem MFC-Anwendungs-Assistenten erstellen.
Die Prozeduren verwenden die folgenden Namen und Werte:
Artikel | Name oder Wert |
---|---|
Anwendung | DisplayDialog |
Menübefehl | Befehl "Testen" im Menü "Ansicht"; Befehls-ID = ID_VIEW_TEST |
Dialogfeld | Dialogfeld "Testen"; Class = CTestDialog; Headerdatei = TestDialog.h; Variable = testdlg, ptestdlg |
Befehlshandler | OnViewTest |
So zeigen Sie ein modales Dialogfeld an
Erstellen Sie den Menübefehl; siehe Erstellen von Menüs oder Menüelementen.
Dialogfeld erstellen; siehe Starten des Dialogfeld-Editors.
Fügen Sie eine Klasse für Ihr Dialogfeld hinzu. Weitere Informationen finden Sie unter Hinzufügen einer Klasse .
Wählen Sie in der Klassenansicht die Dokumentklasse (CDisplayDialogDoc) aus. Klicken Sie im Fenster Eigenschaften auf die Schaltfläche Ereignisse. Doppelklicken Sie auf die ID des Menübefehls (ID_VIEW_TEST). Klicken Sie als Nächstes auf den Abwärtspfeil, und wählen Sie "OnViewTest hinzufügen" aus<.>
Wenn Sie dem Standard Frame einer MDI-Anwendung den Menübefehl hinzugefügt haben, wählen Sie stattdessen die Anwendungsklasse (CDisplayDialogApp) aus.
Fügen Sie die folgende Include-Anweisung zu CDisplayDialogDoc.cpp (oder CDisplayDialogApp.cpp) nach den vorhandenen Include-Anweisungen hinzu:
#include "TestDialog.h"
Fügen Sie den folgenden Code hinzu, um die Funktion zu
OnViewTest
implementieren:CTestDialog testdlg; testdlg.DoModal();
So zeigen Sie ein Dialogfeld ohne Modus an
Führen Sie die ersten vier Schritte aus, um ein modales Dialogfeld anzuzeigen, mit Ausnahme der Ansichtsklasse (CDisplayDialogView) in Schritt 4.
DisplayDialogView.h bearbeiten:
- Deklarieren Sie die Dialogfeldklasse vor der ersten Klassendeklaration:
class CTestDialog;
- Deklarieren Sie einen Zeiger auf das Dialogfeld nach dem öffentlichen Abschnitt "Attribute":
CTestDialog* m_pTestDlg;
DisplayDialogView.cpp bearbeiten:
- Fügen Sie die folgende Include-Anweisung nach den vorhandenen Include-Anweisungen hinzu:
#include "TestDialog.h"
- Fügen Sie dem Konstruktor den folgenden Code hinzu:
m_pTestDlg = NULL;
- Fügen Sie dem Destruktor den folgenden Code hinzu:
delete m_pTestDlg;
- Fügen Sie den folgenden Code hinzu, um die Funktion zu
OnViewTest
implementieren:
if (NULL == m_pTestDlg) { m_pTestDlg = new CTestDialog(this); m_pTestDlg->Create(CTestDialog::IDD, this); } m_pTestDlg->ShowWindow(SW_SHOW);