Esempio: visualizzazione di una finestra di dialogo tramite un comando di menu
Questo argomento contiene procedure per:
Visualizzare una finestra di dialogo modale tramite un comando di menu.
Consente di visualizzare una finestra di dialogo senza modalità tramite un comando di menu.
Entrambe le procedure di esempio sono relative alle applicazioni MFC e funzioneranno in un'applicazione creata con la Creazione guidata applicazione MFC.
Le procedure usano i nomi e i valori seguenti:
Articolo | Nome o valore |
---|---|
Applicazione | DisplayDialog |
Comando di menu | Comando Test nel menu Visualizza; ID comando = ID_VIEW_TEST |
Finestra di dialogo | Finestra di dialogo Test; Classe = CTestDialog; File di intestazione = TestDialog.h; Variabile = testdlg, ptestdlg |
Gestore comandi | OnViewTest |
Per visualizzare una finestra di dialogo modale
Creare il comando di menu; vedere Creazione di menu o voci di menu.
Creare la finestra di dialogo; vedere Avvio dell'editor di dialoghi.
Aggiungere una classe per la finestra di dialogo. Per altre informazioni, vedere Aggiunta di una classe .
In Visualizzazione classi selezionare la classe documento (CDisplayDialogDoc). Nella finestra Proprietà fare clic sul pulsante Eventi . Fare doppio clic sull'ID del comando di menu (ID_VIEW_TEST). Fare quindi clic sulla freccia giù e selezionare <Aggiungi> OnViewTest.
Se è stato aggiunto il comando di menu al mainframe di un'applicazione MDI, selezionare invece la classe applicazione (CDisplayDialogApp).
Aggiungere l'istruzione include seguente a CDisplayDialogDoc.cpp (o CDisplayDialogApp.cpp) dopo le istruzioni include esistenti:
#include "TestDialog.h"
Aggiungere il codice seguente per
OnViewTest
implementare la funzione :CTestDialog testdlg; testdlg.DoModal();
Per visualizzare una finestra di dialogo senza modalità
Eseguire i primi quattro passaggi per visualizzare una finestra di dialogo modale, ad eccezione della selezione della classe di visualizzazione (CDisplayDialogView) nel passaggio 4.
Modificare DisplayDialogView.h:
- Dichiarare la classe della finestra di dialogo che precede la dichiarazione della prima classe:
class CTestDialog;
- Dichiarare un puntatore alla finestra di dialogo dopo la sezione Attributi pubblici:
CTestDialog* m_pTestDlg;
Modifica DisplayDialogView.cpp:
- Aggiungere l'istruzione include seguente dopo le istruzioni include esistenti:
#include "TestDialog.h"
- Aggiungere il codice seguente al costruttore:
m_pTestDlg = NULL;
- Aggiungere il codice seguente al distruttore:
delete m_pTestDlg;
- Aggiungere il codice seguente per
OnViewTest
implementare la funzione :
if (NULL == m_pTestDlg) { m_pTestDlg = new CTestDialog(this); m_pTestDlg->Create(CTestDialog::IDD, this); } m_pTestDlg->ShowWindow(SW_SHOW);