Compartilhar via


Exemplo: exibindo uma caixa de diálogo por meio de um comando de menu

Este tópico contém procedimentos para:

  • Exibir uma caixa de diálogo modal por meio de um comando de menu.

  • Exibir uma caixa de diálogo modeless por meio de um comando de menu.

Ambos os procedimentos de exemplo são para aplicativos MFC e funcionarão em um aplicativo criado com o Assistente de Aplicativo MFC.

Os procedimentos usam os seguintes nomes e valores:

Elemento Nome ou valor
Aplicação DisplayDialog
Comando menu Comando de teste no menu Exibir; ID do comando = ID_VIEW_TEST
Caixa de diálogo Caixa de diálogo De teste; Classe = CTestDialog; Arquivo de cabeçalho = TestDialog.h; Variável = testdlg, ptestdlg
Manipulador de comandos OnViewTest

Para exibir uma caixa de diálogo modal

  1. Criar o comando de menu; consulte Criando menus ou itens de menu.

  2. Criar a caixa de diálogo; consulte Iniciar o Editor de Caixa de Diálogo.

  3. Adicione uma classe para sua caixa de diálogo. Consulte a adição de uma classe para obter mais informações.

  4. No Modo de Exibição de Classe, selecione a classe de documento (CDisplayDialogDoc). Na janela Propriedades , clique no botão Eventos . Clique duas vezes na ID do comando de menu (ID_VIEW_TEST). Em seguida, clique na seta para baixo e selecione <Adicionar> OnViewTest.

    Se você adicionou o comando de menu ao mainframe de um aplicativo MDI, selecione a classe de aplicativo (CDisplayDialogApp).

  5. Adicione a seguinte instrução include a CDisplayDialogDoc.cpp (ou CDisplayDialogApp.cpp) após as instruções de inclusão existentes:

    #include "TestDialog.h"
    
  6. Adicione o seguinte código para OnViewTest implementar a função:

    CTestDialog testdlg;
    testdlg.DoModal();
    

Para exibir uma caixa de diálogo modeless

  1. Execute as quatro primeiras etapas para exibir uma caixa de diálogo modal, exceto selecionar a classe de exibição (CDisplayDialogView) na etapa 4.

  2. Editar DisplayDialogView.h:

    • Declare a classe de caixa de diálogo anterior à declaração de primeira classe:
    class CTestDialog;
    
    • Declare um ponteiro para a caixa de diálogo após a seção pública Atributos:
    CTestDialog* m_pTestDlg;
    
  3. Editar DisplayDialogView.cpp:

    • Adicione a seguinte instrução include após as instruções de inclusão existentes:
    #include "TestDialog.h"
    
    • Adicione o seguinte código ao construtor:
    m_pTestDlg = NULL;
    
    • Adicione o seguinte código ao destruidor:
    delete m_pTestDlg;
    
    • Adicione o seguinte código para OnViewTest implementar a função:
    if (NULL == m_pTestDlg)
    {
       m_pTestDlg = new CTestDialog(this);
       m_pTestDlg->Create(CTestDialog::IDD, this);
    }
    m_pTestDlg->ShowWindow(SW_SHOW);
    

Consulte também

Caixas de diálogo
Caixas de diálogo Modal e Modeless