Compartir a través de


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

  1. Cree el comando de menú; vea Crear menús o elementos de menú.

  2. Cree el cuadro de diálogo; vea Iniciar el editor de cuadros de diálogo.

  3. Agregue una clase para el cuadro de diálogo. Vea Agregar una clase para obtener más información.

  4. 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.

  5. 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"
    
  6. 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

  1. Haga los primeros cuatro pasos para mostrar un cuadro de diálogo modal, excepto seleccione la clase de vista (CDisplayDialogView) en el paso 4.

  2. 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;
      
  3. 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

Vea también

Conceptos

Cuadros de diálogo

Cuadros de diálogo modales y no modales