Partilhar via


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

Este tópico contém procedimentos para:

  • Exiba uma caixa de diálogo modal através de um comando de menu.

  • Exiba uma caixa de diálogo sem moderação através de um comando de menu.

Ambos os procedimentos de exemplo são para aplicativos MFC e funcionarão em um aplicativo que você criar com o MFC Application Wizard.

Os procedimentos usam os seguintes nomes e valores:

Iteme Nome ou valor
Aplicação DisplayDialog
Comando de Menu Comando Testar no menu Ver; ID do comando = ID_VIEW_TEST
Caixa de diálogo Caixa de diálogo 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 Criação de menus ou itens de menu.

  2. Criar a caixa de diálogo; consulte Iniciando o Editor de diálogo.

  3. Adicione uma classe para sua caixa de diálogo. Consulte Adicionando uma classe para obter mais informações.

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

    Caso tenhas adicionado o comando de menu à janela principal de uma aplicação MDI, seleciona a classe da aplicação (CDisplayDialogApp).

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

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

    CTestDialog testdlg;
    testdlg.DoModal();
    

Para exibir uma caixa de diálogo não modal

  1. Execute as quatro primeiras etapas para exibir uma caixa de diálogo modal, exceto selecione a classe view (CDisplayDialogView) na etapa 4.

  2. Edite DisplayDialogView.h:

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

    • Adicione a seguinte declaração de inclusão após as declaraçõ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 em OnViewTest para implementar a função:
    if (NULL == m_pTestDlg)
    {
       m_pTestDlg = new CTestDialog(this);
       m_pTestDlg->Create(CTestDialog::IDD, this);
    }
    m_pTestDlg->ShowWindow(SW_SHOW);
    

Ver também

Caixas de Diálogo
Caixas de diálogo modais e não modais