Beispiel: Anzeigen eines Dialogfelds mit einem Menübefehl
Dieses Thema enthält Prozeduren:
Zeigen Sie ein modales Dialogfeld durch einen Menübefehl an.
Zeigen Sie ein nicht modales Dialogfeld durch einen Menübefehl an.
Beide Beispielprozeduren sind für MFC-Anwendungen und in einer Anwendung arbeiten, die Sie mit dem MFC-Anwendungs-Assistent erstellen.
Die Prozeduren verwenden die folgenden Namen und Werte:
Element |
Name oder Wert |
---|---|
Anwendung |
DisplayDialog |
Menübefehl |
Testbefehl auf Menü Ansicht; Befehls-ID = ID_VIEW_TEST |
Dialogfeld |
Testdialogfeld; Klasse CTestDialog =; Headerdatei = TestDialog.h; Variable = testdlg, ptestdlg |
Befehlshandler |
OnViewTest |
So ein modales Dialogfeld anzeigen
Erstellen Sie den Menübefehl; finden Sie unter Erstellen von Menüs oder von Menüelementen.
Stellen Sie das Dialogfeld erstellt; finden Sie unter Starten des Dialog-Editors.
Fügen Sie eine Klasse für das Dialogfeld hinzu. Weitere Informationen finden Sie unter Hinzufügen einer Klasse.
Wählen Sie im Klassenansicht die Dokumentklasse aus (CDisplayDialogDoc). Im Fenster Eigenschaften klicken Sie auf die Schaltfläche Ereignisse . Doppelklicken Sie auf die ID des Menübefehls (ID_VIEW_TEST) im linken Bereich des Fensters Eigenschaften und wählen Sie Befehl aus. Klicken Sie im rechten Bereich auf den Pfeil nach unten und wählen Sie <Add> OnViewTest aus.
Wenn Sie dem Menübefehl zu den Mainframen einer MDI-Anwendung hinzugefügt haben, wählen Sie die Anwendungsklasse (CDisplayDialogApp) aus.
Fügen Sie die folgende CDisplayDialogDoc.cpp include-Anweisung (oder CDisplayDialogApp.cpp) nach vorhandenen Include-Anweisungen hinzu:
#include "TestDialog.h"
Fügen Sie OnViewTest folgenden Code hinzu, um die Funktion zu implementieren:
CTestDialog testdlg; testdlg.DoModal();
Um ein nicht modales Dialogfeld anzeigen
Führen Sie die ersten vier Schritte, um ein modales Dialogfeld, außer Text anzuzeigen die Ansichtsklasse (CDisplayDialogView) in Schritt 4.
Bearbeiten DisplayDialogView.h:
Deklarieren Sie die Deklaration der Dialogklasse, die der ersten Klasse vor:
class CTestDialog;
Deklarieren Sie einen Zeiger auf das Dialogfeld, nachdem dem öffentlichen Abschnitt der Attribute:
CTestDialog* m_pTestDlg;
Bearbeiten DisplayDialogView.cpp:
Fügen Sie die folgende include-Anweisung nach vorhandenen Include-Anweisungen hinzu:
#include "TestDialog.h"
Fügen Sie dem Konstruktor folgenden Code hinzu:
m_pTestDlg = NULL;
Fügen Sie den folgenden Code dem Destruktor hinzu:
delete m_pTestDlg;
Fügen Sie OnViewTest folgenden Code hinzu, um die Funktion zu implementieren:
if (NULL == m_pTestDlg) { m_pTestDlg = new CTestDialog(this); m_pTestDlg->Create(CTestDialog::IDD, this); } m_pTestDlg->ShowWindow(SW_SHOW);
Außerdem finden Sie im folgenden Knowledge Base-Artikel:
- Q251059: HOWTO: Geben Sie einen eigenen Fensterklassen-Namen für ein MFC-Dialogfeld an