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 janela restrita através de um comando de menu.

Ambos os procedimentos de amostra são para aplicativos MFC e funcionarão em um aplicativo criado com o MFC Application assistente.

Os procedimentos de usar os seguintes nomes e valores:

Item

Nome ou valor

Application

DisplayDialog

Comando de menu

Comando de teste no menu Exibir; comando ID = 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 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 Iniciar o Editor de diálogo.

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

  4. In Modo de exibição de classe, selecionar a classe de documento (CDisplayDialogDoc).Na janela Properties, clique no botão Properties.clicar duas vezes na ID do comando de menu (ID_VIEW_TEST) no painel esquerdo do Propriedades janela e selecionar Comando.No painel direito, clicar na seta para baixo e selecionar <add>OnViewTest.

    Se você tiver adicionado o comando de menu para o mainframe de um aplicativo MDI, selecionar a classe de aplicativo (CDisplayDialogApp) em vez disso.

  5. Adicione o seguinte incluir demonstrativo CDisplayDialogDoc.cpp (ou CDisplayDialogApp.cpp) depois que o existente incluir instruções:

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

    CTestDialog testdlg;
    testdlg.DoModal();  
    

Para exibir uma caixa de diálogo sem janela restrita

  1. Fazer as quatro primeiras etapas para exibir uma caixa de diálogo modal, porém selecionar modo de exibição de classe (CDisplayDialogView) na etapa 4.

  2. edição DisplayDialogView.h:

    • Declare a classe de caixa de diálogo antecedendo a 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. Edite DisplayDialogView.cpp:

    • Adicione que o seguinte incluir demonstrativo depois que o existente incluir instruções:

      #include "TestDialog.h"
      
    • Adicione o seguinte código ao construtor:

      m_pTestDlg = NULL;
      
    • Adicione o seguinte código para o destruidor:

      delete m_pTestDlg;
      
    • Adicione o seguinte código para 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); 
      

Além disso, consulte o seguinte artigo da Base de dados de Conhecimento:

  • Q251059: HOWTO: Fornecer seu próprio nome de classe de janela para uma caixa de diálogo do MFC

Consulte também

Conceitos

Caixas de diálogo

Modais e caixas de diálogo sem janela restrita