Exemplo: exibindo uma caixa de diálogo por meio de um comando 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 sem modo por meio de um comando de menu.
Ambos os procedimentos de exemplo destinam-se a aplicativos MFC, e funcionarão em um aplicativo criado com o Assistente de Aplicativo MFC.
Os procedimentos usam os seguintes nomes e valores:
Item | Nome ou valor |
---|---|
Aplicativo | DisplayDialog |
Comando de menu | Comando de teste no menu Exibir; ID do comando = ID_VIEW_TEST |
Caixa de diálogo | Caixa de diálogo Testar; Classe = CTestDialog; Arquivo de cabeçalho = TestDialog.h; Variável = testdlg, ptestdlg |
Manipulador de comandos | OnViewTest |
Para exibir uma caixa de diálogo modal
Crie o comando de menu; consulte Criar menus ou itens de menu.
Criar a caixa de diálogo; consulte Iniciar o Editor de caixa de diálogo.
Adicione uma classe à sua caixa de diálogo. Consulte Adicionar uma classe para obter mais informações.
Na Exibição de classe, selecione a classe do 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ê tiver adicionado o comando de menu ao mainframe de um aplicativo MDI, selecione a classe de aplicativo (CDisplayDialogApp) em vez disso.
Adicione a seguinte instrução include ao CDisplayDialogDoc.cpp (ou CDisplayDialogApp.cpp) após as instruções include existentes:
#include "TestDialog.h"
Adicione o seguinte código a
OnViewTest
para implementar a função:CTestDialog testdlg; testdlg.DoModal();
Para exibir uma caixa de diálogo sem modo
Execute as quatro primeiras etapas para exibir uma caixa de diálogo modal, exceto selecionar a classe de exibição (CDisplayDialogView) na etapa 4.
Edite 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;
Edite DisplayDialogView.cpp:
- Adicione a seguinte instrução include após as instruções include 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 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);
Confira também
Caixas de diálogo
Caixas de diálogo modais e sem janela restrita