Exemplo: exibindo uma caixa de diálogo por meio de um comando Menu
Este tópico contém procedimentos:
Exibe uma caixa de diálogo modal por um comando de menu.
Exibe uma caixa de diálogo modeless por um comando de menu.
Ambos os procedimentos de exemplo são para aplicativos de MFC e funcionarão em um aplicativo que você cria com Assistente do aplicativo MFC.
Os procedimentos usam os seguintes nomes e valores:
Item |
Nome ou valor |
---|---|
Aplicativo |
DisplayDialog |
Comando de menu |
Comando de teste no menu exibição; 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 comando |
OnViewTest |
Para exibir uma caixa de diálogo modal
Crie o comando de menu; consulte Criando menus ou itens de menu.
Crie a caixa de diálogo; consulte Iniciando o publicador da caixa de diálogo.
Adicione uma classe para a caixa de diálogo. Consulte Adicionando uma classe para obter mais informações.
Em Modo de Exibição de Classe, selecione a classe do documento (CDisplayDialogDoc). Na janela de Propriedades , clique no botão de Eventos . Clique duas vezes na ID de comando de menu (ID_VIEW_TEST) no painel esquerdo da janela de Propriedades e selecione Comando. No painel direito, clique na seta para baixo e selecione <Add> OnViewTest.
Se você adicionou o comando de menu à unidade central de um aplicativo MDI, selecione a classe do aplicativo (CDisplayDialogApp).
Adicione o seguinte incluem a instrução a CDisplayDialogDoc.cpp (ou a CDisplayDialogApp.cpp) depois da existência incluem instruções:
#include "TestDialog.h"
Adicione o código a OnViewTest para implementar a função:
CTestDialog testdlg; testdlg.DoModal();
Para exibir uma caixa de diálogo modeless
Execute as primeiras quatro etapas para exibir uma caixa de diálogo modal, a não ser que selecione a classe da exibição (CDisplayDialogView) na etapa 4.
Edição DisplayDialogView.h:
Declare a classe da caixa de diálogo que precede a declaração de primeira classe:
class CTestDialog;
Declare um ponteiro para a caixa de diálogo depois que a seção pública de atributos:
CTestDialog* m_pTestDlg;
Edição DisplayDialogView.cpp:
Adicione o seguinte incluem a instrução após a existência incluem instruções:
#include "TestDialog.h"
Adicione o seguinte código para o construtor:
m_pTestDlg = NULL;
Adicione o seguinte código ao destruidor:
delete m_pTestDlg;
Adicione o código a 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: Forneça seu próprio nome de classe da janela para uma caixa de diálogo MFC