Beispiel: Anzeigen eines Dialogfelds über einen Menübefehl

Dieses Thema enthält Prozeduren:

  • Zeigt ein modales Dialogfeld durch einen Menübefehl an.

  • Anzeigen eines nicht modalen Dialogfelds durch einen Menübefehl an.

Beide Beispiel Prozeduren sind für MFC-Anwendungen und werden in einer Anwendung arbeiten, die Sie mit MFC-Anwendungs-Assistent erstellen.

Die Prozeduren verwenden den folgenden Namen und die Werte:

Element

Name bzw. Wert

Anwendung

DisplayDialog

Menübefehl

Test im Menü Ansicht den Befehl auf. Befehls-ID = ID_VIEW_TEST

Dialogfeld

Test hinzufügen. CTestDialog = Klasse. Headerdatei = TestDialog.h. ptestdlg, testdlg = Variable

Befehlshandler

OnViewTest

So fügen Sie ein modales Dialogfeld anzeigen

  1. Erstellen Sie den Menübefehl; Weitere Informationen finden Sie unter Menüs und Menüelementen erstellen.

  2. Stellen Sie im Dialogfeld. Weitere Informationen finden Sie unter Der Dialog-Editor starten.

  3. Fügen Sie das Dialogfeld für eine Klasse hinzu.Weitere Informationen finden Sie unter Eine Klasse hinzufügen.

  4. In Klassenansicht wählen Sie 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 Fenster 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 den Menübefehl zum Mainframen einer MDI-Anwendung hinzugefügt haben, wählen Sie die Anwendungsklasse (CDisplayDialogApp stattdessen) aus.

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

    #include "TestDialog.h"
    
  6. Fügen Sie den folgenden Code OnViewTest hinzu, um die Funktion zu implementieren:

    CTestDialog testdlg;
    testdlg.DoModal();  
    

Um ein nicht modales Dialogfeld anzeigen

  1. Führen Sie die ersten vier Schritte, um ein modales Dialogfeld anzeigen auswählen, außer die Ansichtsklasse (CDisplayDialogView) in Schritt 4 fort.

  2. Bearbeiten DisplayDialogView.h:

    • Deklarieren Sie die Dialogfeldklasse, die der Deklaration der ersten Klasse befindet:

      class CTestDialog;
      
    • Deklarieren Sie einen Zeiger auf das Dialogfeld nach dem öffentlichen Abschnitt der Attribute:

      CTestDialog* m_pTestDlg;
      
  3. Bearbeiten DisplayDialogView.cpp:

    • Fügen Sie die folgende include-Anweisung nach den vorhandenen enthalten Anweisungen hinzu:

      #include "TestDialog.h"
      
    • Fügen Sie dem Konstruktor den folgenden Code hinzu:

      m_pTestDlg = NULL;
      
    • Fügen Sie den folgenden Code dem Destruktor hinzu:

      delete m_pTestDlg;
      
    • Fügen Sie den folgenden Code OnViewTest 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); 
      

Darüber hinaus finden Sie in den folgenden Knowledge Base-Artikeln:

  • Q251059: HOWTO: Geben Sie Ihren eigenen Fensterklassen-Namen für ein MFC-Dialogfeld an

Siehe auch

Konzepte

Dialogfelder

Modal und nicht modale Dialogfelder