Condividi tramite


Esempio: visualizzazione di una finestra di dialogo tramite un comando di menu

In questo argomento sono contenute le procedure:

  • Viene visualizzata una finestra di dialogo modale tramite un comando di menu.

  • Viene visualizzata una finestra di dialogo non modale tramite un comando di menu.

Entrambe le procedure di campionamento sono per le applicazioni MFC e funzioneranno in un'applicazione creata con Creazione guidata applicazione MFC.

Le procedure utilizzano i seguenti nomi e valori:

Elemento

Nome o valore

Applicazione

DisplayDialog

Comando di menu

Comando test dal menu Visualizza; ID comando = ID_VIEW_TEST

Finestra di dialogo

Finestra di dialogo di test; Classe CTestDialog; = File di intestazione = TestDialog.h; Variabile = testdlg, ptestdlg

Gestore comando

OnViewTest

Per visualizzare una finestra di dialogo modale

  1. Creare il comando di menu; vedere Creare menu o voci di menu.

  2. Creare la finestra di dialogo; vedere Avviare l'editor finestre.

  3. Aggiungere una classe per la finestra di dialogo. Vedere Aggiunta di un classe per ulteriori informazioni.

  4. In Visualizzazione classi, selezionare la classe document (CDisplayDialogDoc). Nella finestra di Proprietà, fare clic sul pulsante di Eventi . Fare doppio clic sull'ID del comando di menu (ID_VIEW_TEST) nel riquadro sinistro della finestra di Proprietà e selezionare Comando. Nel riquadro destro, fare clic sulla freccia giù e selezionare <Add> OnViewTest.

    Se è stato aggiunto il comando di menu al computer centrale di un'applicazione MDI, selezionare classe di applicazione (CDisplayDialogApp).

  5. Aggiungere le seguenti istruzioni tra l'istruzione in CDisplayDialogDoc.cpp (o a CDisplayDialogApp.cpp) dopo l'esistenza istruzioni:

    #include "TestDialog.h"
    
  6. Aggiungere il codice seguente a OnViewTest per implementare la funzione:

    CTestDialog testdlg;
    testdlg.DoModal();  
    

Per visualizzare una finestra di dialogo non modale

  1. Fare i primi quattro passaggi per visualizzare una finestra di dialogo modale, a meno che selezionare la classe di visualizzazione (CDisplayDialogView) al passaggio 4.

  2. Modifica DisplayDialogView.h:

    • Dichiarare la classe della finestra di dialogo che precede la dichiarazione di classe:

      class CTestDialog;
      
    • Dichiarare un puntatore alla finestra di dialogo dopo la sezione public di attributi:

      CTestDialog* m_pTestDlg;
      
  3. Modifica DisplayDialogView.cpp:

    • Aggiungere le seguenti istruzioni relative all'istruzione successiva l'esistenza istruzioni:

      #include "TestDialog.h"
      
    • Aggiungere il seguente codice al costruttore:

      m_pTestDlg = NULL;
      
    • Aggiungere il seguente codice al distruttore:

      delete m_pTestDlg;
      
    • Aggiungere il codice seguente a OnViewTest per implementare la funzione:

      if (NULL == m_pTestDlg)
      {
         m_pTestDlg = new CTestDialog(this);
         m_pTestDlg->Create(CTestDialog::IDD, this);
      }
      m_pTestDlg->ShowWindow(SW_SHOW); 
      

Inoltre, vedere il seguente articolo della Knowledge Base:

  • Q251059: HOWTO: Immettere il proprio nome della classe della finestra per una finestra di dialogo MFC

Vedere anche

Concetti

Finestre di dialogo

Finestre di dialogo modali e non modali