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
Creare il comando di menu; vedere Creare menu o voci di menu.
Creare la finestra di dialogo; vedere Avviare l'editor finestre.
Aggiungere una classe per la finestra di dialogo. Vedere Aggiunta di un classe per ulteriori informazioni.
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).
Aggiungere le seguenti istruzioni tra l'istruzione in CDisplayDialogDoc.cpp (o a CDisplayDialogApp.cpp) dopo l'esistenza istruzioni:
#include "TestDialog.h"
Aggiungere il codice seguente a OnViewTest per implementare la funzione:
CTestDialog testdlg; testdlg.DoModal();
Per visualizzare una finestra di dialogo non modale
Fare i primi quattro passaggi per visualizzare una finestra di dialogo modale, a meno che selezionare la classe di visualizzazione (CDisplayDialogView) al passaggio 4.
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;
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