Esempio: Verrà visualizzata la finestra di dialogo tramite un comando di menu

Questo argomento contiene 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 del test dal menu Visualizza; ID di 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 della finestra di dialogo.

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

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

    Se è stato aggiunto il comando di menu all'elaboratore componenti di un'applicazione MDI, selezionare la classe dell'applicazione (CDisplayDialogApp).

  5. Aggiungere le istruzioni seguenti includono l'istruzione a CDisplayDialogDoc.cpp (o a CDisplayDialogApp.cpp) dopo che sono incluse le istruzioni:

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

    CTestDialog testdlg;
    testdlg.DoModal();  
    

Per visualizzare una finestra di dialogo non modale

  1. Eseguire i primi quattro passaggi per visualizzare una finestra di dialogo modale, a meno che non sia selezionata la classe di visualizzazione (CDisplayDialogView) nel 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 pubblica di attributi:

      CTestDialog* m_pTestDlg;
      
  3. Modifica DisplayDialogView.cpp:

    • Aggiungere le istruzioni seguenti includono l'istruzione dopo che sono incluse le istruzioni:

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

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

      delete m_pTestDlg;
      
    • Aggiungere il seguente codice 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: Fornire un nome di classe della finestra per una finestra di dialogo MFC

Vedere anche

Concetti

Finestre di dialogo

Modale e finestre di dialogo non modale