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
Criar o comando de menu; consulte Criação de menus ou itens de menu.
Criar a caixa de diálogo; consulte Iniciar o Editor de diálogo.
Adicione uma classe para sua caixa de diálogo.See Adicionando uma classe para obter mais informações.
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.
Adicione o seguinte incluir demonstrativo CDisplayDialogDoc.cpp (ou CDisplayDialogApp.cpp) depois que 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 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.
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;
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