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

  1. Erstellen Sie den Menübefehl; siehe Erstellen von Menüs oder Menüelementen.

  2. Dialogfeld erstellen; siehe Starten des Dialogfeld-Editors.

  3. Fügen Sie eine Klasse für Ihr Dialogfeld hinzu. Weitere Informationen finden Sie unter Hinzufügen einer Klasse .

  4. 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.

  5. Fügen Sie die folgende Include-Anweisung zu CDisplayDialogDoc.cpp (oder CDisplayDialogApp.cpp) nach den vorhandenen Include-Anweisungen hinzu:

    #include "TestDialog.h"
    
  6. 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

  1. Führen Sie die ersten vier Schritte aus, um ein modales Dialogfeld anzuzeigen, mit Ausnahme der Ansichtsklasse (CDisplayDialogView) in Schritt 4.

  2. 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;
    
  3. 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);
    

Siehe auch

Dialogfelder
Modale und nicht modale Dialogfelder