Ejemplo: Mostrar un cuadro de diálogo a través de un comando de menú
Este tema contiene procedimientos:
Muestra un cuadro de diálogo modal mediante un comando de menú.
Muestra un cuadro de diálogo no modal mediante un comando de menú.
Ambos procedimientos de ejemplo son para las aplicaciones MFC y funcionarán en una aplicación creada con Asistente para aplicaciones MFC.
Los procedimientos utilizan los nombres y los valores siguientes:
Elemento |
Nombre o valor |
---|---|
Aplicación |
DisplayDialog |
Comando de menú |
Comando de prueba en el menú ver; Identificador 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 |
Para mostrar un cuadro de diálogo modal
Cree el comando de menú; vea Crear menús o elementos de menú.
Cree el cuadro de diálogo; vea Iniciar el editor de cuadros de diálogo.
Agregue una clase para el cuadro de diálogo. Vea Agregar una clase para obtener más información.
En vista de clases, seleccione la clase document (CDisplayDialogDoc). En la ventana de Propiedades , haga clic en el botón de Eventos . Haga doble clic en el identificador de comando de menú (ID_VIEW_TEST) en el panel izquierdo de la ventana de Propiedades y de Comandoseleccione. En el panel derecho, haga clic en la flecha abajo y seleccione <Add> OnViewTest.
Si agregó el comando de menú a gran sistema de una aplicación MDI, seleccione la clase de aplicación (CDisplayDialogApp) en su lugar.
Agregue la siguiente instrucción de inclusión a CDisplayDialogDoc.cpp (o a CDisplayDialogApp.cpp) después de las instrucciones existentes de inclusión:
#include "TestDialog.h"
Agregue el código siguiente a OnViewTest para implementar la función:
CTestDialog testdlg; testdlg.DoModal();
Para mostrar un cuadro de diálogo no modal
Haga los primeros cuatro pasos para mostrar un cuadro de diálogo modal, excepto seleccione la clase de vista (CDisplayDialogView) en el paso 4.
Edición DisplayDialogView.h:
Declare la clase de cuadro de diálogo que precede a la primera declaración de clase:
class CTestDialog;
Declare un puntero al cuadro de diálogo después de la sección pública de atributos:
CTestDialog* m_pTestDlg;
Edición DisplayDialogView.cpp:
Agregue la siguiente instrucción include después de las instrucciones existentes de inclusión:
#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);
También, vea el siguiente artículo de Knowledge Base:
- Q251059: HOWTO: Proporcione el nombre de clase de ventana Own para un cuadro de diálogo de MFC