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 por meio 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 que você criar com o MFC Application Wizard.
Os procedimentos usam os nomes e os valores a seguir:
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 comando |
OnViewTest |
Para exibir uma caixa de diálogo modal
Criar o comando de menu; consulte Criando Menus ou itens de Menu.
Criar caixa de diálogo; consulte Iniciar o Editor de diálogo.
Adicione uma classe para sua caixa de diálogo.Consulte Adicionar uma classe de para obter mais informações.
Em Exibição de classe, selecione a classe de documento (CDisplayDialogDoc).No Propriedades janela, clique na eventos botão.Clique duas vezes a identificação do comando de menu (ID_VIEW_TEST) no painel esquerdo do Propriedades janela e selecione comando.No painel direito, clique na seta para baixo e selecione <Add> OnViewTest.
Se você adicionou o comando de menu ao mainframe de um aplicativo MDI, selecione a classe de aplicativo (CDisplayDialogApp) em vez disso.
Adicionar o seguinte incluir a instrução CDisplayDialogDoc.cpp (ou CDisplayDialogApp.cpp) após o existente incluir instruções:
#include "TestDialog.h"
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
Fazer quatro primeiras etapas para exibir a caixa de diálogo modal, porém selecione a classe de modo de exibição (CDisplayDialogView) na etapa 4.
Edite DisplayDialogView.h:
Declare a classe de caixa de diálogo anterior 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;
Edite DisplayDialogView.cpp:
Adicione que o seguinte incluir instrução após o existente incluir instruções:
#include "TestDialog.h"
Adicione o seguinte código para o 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 do Knowledge Base:
- Q251059: HOWTO: fornecer seu próprio nome de classe de janela para uma caixa de diálogo do MFC