Ejemplo: Mostrar un cuadro de diálogo a través de un comando de menú
Este tema contiene los procedimientos para lo siguiente:
Mostrar un cuadro de diálogo modal mediante un comando de menú.
Mostrar un cuadro de diálogo sin modo mediante un comando de menú.
Ambos procedimientos de ejemplo son para aplicaciones de MFC y funcionarán en una aplicación que cree con el Asistente para aplicaciones de MFC.
Los procedimientos usan los nombres y valores siguientes:
Elemento | Nombre o valor |
---|---|
Application | DisplayDialog |
Comando de menú | Comando de prueba en el menú Ver; id. de comando = ID_VIEW_TEST |
Cuadro de diálogo | Cuadro de diálogo de prueba; clase = CTestDialog; archivo de encabezado = TestDialog.h; variable = testdlg, ptestdlg |
Controlador de comandos | OnViewTest |
Visualización de un cuadro de diálogo modal
Cree el comando del menú; vea Creación de menús o elementos de menú.
Crear el cuadro de diálogo; vea Inicio del editor de cuadros de diálogo.
Agregue una clase para el cuadro de diálogo. Para obtener más información, vea Incorporación de una clase.
En Vista de clases, seleccione la clase del documento (CDisplayDialogDoc). En la ventana Propiedades, haga clic en el botón Eventos. Haga doble clic en el id. del comando de menú (ID_VIEW_TEST). Posteriormente, haga clic en la flecha abajo y seleccione <Agregar> OnViewTest.
Si ha agregado el comando de menú al gran sistema de una aplicación MDI, seleccione la clase de aplicación (CDisplayDialogApp) en su lugar.
Agregue la instrucción siguiente include a CDisplayDialogDoc.cpp (o CDisplayDialogApp.cpp) después de las instrucciones include existentes:
#include "TestDialog.h"
Agregue el código siguiente a
OnViewTest
para implementar la función:CTestDialog testdlg; testdlg.DoModal();
Visualización de un cuadro de diálogo sin modo
Realice los cuatro primeros pasos para mostrar un cuadro de diálogo modal, excepto el de selección de la clase de vista (CDisplayDialogView) en el paso 4.
Edite DisplayDialogView.h:
- Declare la clase de cuadro de diálogo anterior a la declaración de primera clase:
class CTestDialog;
- Declare un puntero al cuadro de diálogo después de la sección pública Atributos:
CTestDialog* m_pTestDlg;
Edite DisplayDialogView.cpp:
- Agregue la instrucción include siguiente después de las instrucciones include existentes:
#include "TestDialog.h"
- Agregue el código siguiente al constructor:
m_pTestDlg = NULL;
- Agregue el código siguiente al destructor:
delete m_pTestDlg;
- Agregue el código siguiente a
OnViewTest
para implementar la función:
if (NULL == m_pTestDlg) { m_pTestDlg = new CTestDialog(this); m_pTestDlg->Create(CTestDialog::IDD, this); } m_pTestDlg->ShowWindow(SW_SHOW);