Como inserir uma tela em um aplicativo baseado em diálogo usando o Visual C++ .NET ou Visual C++ 2005

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 817372
Sumário
No Microsoft Visual Studio 6.0, você pode inserir uma tela em um aplicativo MFC Single Document Interface (SDI) ou um aplicativo de interface de documentos múltiplos (MDI) usando a Galeria de componentes do Visual C++. No entanto, não é possível inserir uma tela em um aplicativo baseado em diálogo na Galeria de componentes de Visual C++. Para obter informações adicionais sobre como adicionar uma tela para um aplicativo baseado no diálogo MFC no Microsoft Visual Studio 6.0, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
190684COMO: Inserir uma tela inicial em um aplicativo baseado em diálogo
Como não há uma maneira direta para criar uma tela inicial no Visual C++ .NET ou no Visual C++ 2005, você deve criar um aplicativo baseado em diálogo usando o AppWizard e, em seguida, adicione uma classe que deriva de CDialog (por exemplo, CSplashDlg ). Modificar o código para ser um tela inicial.

back to the top

Criar e inserir uma tela inicial em um aplicativo baseado em diálogo

Para criar e inserir uma tela em aplicativos baseados em diálogo, siga estas etapas:
  1. Inicie o Visual Studio .NET ou Microsoft Visual Studio 2005
  2. No menu arquivo , aponte para novo e, em seguida, clique em Project .
  3. Clique em Projetos do Visual c++ em Tipos de projeto e, em seguida, clique em Aplicativo MFC em modelos .

    Observação No Visual Studio 2005, clique em Visual C++ em Tipos de projeto e, em seguida, clique em Aplicativo MFC em modelos .
  4. Nomeie o projeto MyApp e em seguida, clique em OK .
  5. A caixa de diálogo MFC Application Wizard aparece.
  6. Clique em Application Type , clique em diálogo com base e, em seguida, clique em Concluir .
back to the top

Uma caixa de diálogo Criar no Editor de recursos

Para criar uma caixa de diálogo no editor de recurso que está visível e centralizado, com uma borda fina e nenhuma legenda, siga estas etapas:
  1. Na exibição de recurso, expanda MyApp.rc , clique com o botão direito na pasta caixa de diálogo e, em seguida, clique em Inserir caixa de diálogo . Por padrão, IDD_DIALOG1 é criado.
  2. Remova o botão OK e o botão Cancelar do IDD_DIALOG1. Para fazer isso, clique com o botão direito do mouse cada botão e, em seguida, clique em Excluir .
  3. Clique com o botão direito do mouse no IDD_DIALOG1 e, em seguida, clique em Propriedades .
  4. Em outros , clique duas vezes identificação .

    Observação No Visual Studio 2005, clique duas vezes identificação em Barra de rolagem horizontal .
  5. Na propriedade ID , clique em IDD_DIALOG1 e, em seguida, digite IDD_SPLASH .
  6. Em aparência , defina a propriedade Barra de título para False e, em seguida, defina a propriedade Border como fina .
back to the top

Adicionar texto a seu Splash Screen

  1. Adicione um controle de Texto estático IDD_SPLASH.
  2. Edite o texto na propriedade legenda .
back to the top

Criar um novo CDialog derivados de classe

  1. Clique duas vezes na caixa de diálogo. A caixa de diálogo MFC Class Wizard aparece.
  2. Digite CSplashDlg na caixa de texto nome da classe e, em seguida, clique em CDialog na lista classe de base .
  3. Clique em Concluir . SplashDlg.cpp e SplashDlg.h são adicionados ao seu projeto.
back to the top

Adicionar funções ao seu projeto

  1. Declarar a variável estática c_pSplashDlg , adicionando a seguinte linha ao arquivo SplashDlg.h:
    static CSplashDlg* c_pSplashDlg;
  2. No Class View, clique com o botão direito do mouse CSplashDlg , aponte para Adicionar e, em seguida, clique em Adicionar função para adicionar as seguintes funções:
    • ShowSplashScreen(CWnd* pParentWnd) : método estático que é usado para exibir a caixa de diálogo inicial.
      1. Na lista Tipo de retorno , clique em void .
      2. Na caixa de texto Nome da função , digite ShowSplashScreen .
      3. Na lista Tipo de parâmetro , clique em CWnd 1 .
      4. Na caixa de texto Nome de parâmetro , digite pParentWnd .
      5. Clique para selecionar a caixa de seleção estático .
    • HideSplashScreen() : método usado para destruir a caixa de diálogo inicial.
      1. Na lista Tipo de retorno , clique em void .
      2. Na caixa de texto Nome da função , digite HideSplashScreen .
    • PreTranslateAppMessage(MSG* pMsg) : método é usado para ocultar a tela inicial sempre que o teclado ou mouse mensagens são recebidas.
      1. Na lista Tipo de retorno , clique em BOOL .
      2. Na caixa de texto Nome da função , digite PreTranslateAppMessage .
      3. Na lista Tipo de parâmetro , clique em MSG 1 .
      4. Na caixa de texto Nome de parâmetro , digite pMsg .
      5. Clique para selecionar a caixa de seleção estático .
  3. Modificar os três métodos que você acabou de criar da seguinte maneira:
    void CSplashDlg::ShowSplashScreen(CWnd* pParentWnd /*= NULL*/){	// Allocate a new splash screen, and create the window.		c_pSplashDlg = new CSplashDlg;	if (!c_pSplashDlg->Create(CSplashDlg::IDD, pParentWnd))			delete c_pSplashDlg;	else	c_pSplashDlg->ShowWindow(SW_SHOW);	c_pSplashDlg->UpdateWindow(); c_pSplashDlg->SetTimer(1,2000, NULL);}void CSplashDlg::HideSplashScreen(){	// Destroy the window, and update the mainframe.	c_pSplashDlg->KillTimer(1);	DestroyWindow();	AfxGetMainWnd()->UpdateWindow();	delete c_pSplashDlg;	c_pSplashDlg = NULL;}BOOL CSplashDlg::PreTranslateAppMessage(MSG* pMsg){		if (c_pSplashDlg == NULL)		return FALSE;			// If you receive a keyboard or mouse message, hide the splash screen.		 if (c_pSplashDlg->m_hWnd != NULL && pMsg->message == WM_KEYDOWN ||	    pMsg->message == WM_SYSKEYDOWN ||	    pMsg->message == WM_LBUTTONDOWN ||	    pMsg->message == WM_RBUTTONDOWN ||	    pMsg->message == WM_MBUTTONDOWN ||	    pMsg->message == WM_NCLBUTTONDOWN ||	    pMsg->message == WM_NCRBUTTONDOWN ||	    pMsg->message == WM_NCMBUTTONDOWN)		{			c_pSplashDlg->HideSplashScreen();			return TRUE;	// message handled here		}	return FALSE;	// message not handled}
    Observação você deve adicionar o common language runtime oferecem suporte a compilador opção ( / CLR: oldSyntax ) no Visual C++ 2005 a compilar com êxito este exemplo de código. Para fazer isso, execute as seguintes etapas:
    1. Clique em projeto e, em seguida, clique em propriedades ProjectName .

      Observação ProjectName representa o nome do projeto.
    2. Expanda Configuration Properties e, em seguida, clique em Geral .
    3. Clique para selecionar Common Language Runtime suporte, sintaxe antiga (/ CLR: oldSyntax) no projeto oferece suporte a Common Language Runtime definindo no painel à direita, clique em Aplicar e em seguida, clique em OK .
    Para obter mais informações sobre o common language runtime oferece suporte às opções de compilador, visite o seguinte site:
    /CLR (common Language Runtime Compilation)
    http://msdn2.microsoft.com/en-us/library/k8d11d4s.aspx
  4. Adicione evento NoCronômetro . Para fazer isso, execute as seguintes etapas:
    1. Na exibição de classe, clique com o botão direito do mouse CSplashDlg e em seguida, clique em Propriedades .
    2. No painel Propriedades, clique no ícone de mensagens para exibir as mensagens.
    3. No campo WM_TIMER , clique em NoCronômetro .
    4. Modifique o método da seguinte maneira:
      void CSplashDlg::OnTimer(UINT nIDEvent){	// Destroy the splash screen window.	HideSplashScreen();}
  5. Substitua o método OnInitDialog da classe CSplashDlg . Para fazer isso, execute as seguintes etapas:
    1. Na exibição de classe, clique com o botão direito do mouse CSplashDlg e em seguida, clique em Propriedades .
    2. No painel Propriedades, clique no ícone substituições para exibir a lista de métodos substituíveis. No campo OnInitDialog , clique em <add> OnInitDialog.
    3. Modificar o método de substituição OnInitDialog que você criou na etapa b. Para fazer isso, execute estas etapas:
      BOOL CSplashDlg::OnInitDialog(){	CDialog::OnInitDialog();	CenterWindow();		 SetWindowPos(&CWnd::wndTopMost, 0, 0, 0, 0,      SWP_NOMOVE|SWP_NOSIZE);	return TRUE;  // return TRUE  unless you set the focus to a control}
back to the top

Exibir a tela inicial

Para exibir a tela inicial, abra seu arquivo de origem do aplicativo, MyAppDlg.cpp e em seguida, execute as seguintes etapas:
  1. Adicione as seguintes linhas de código no início do arquivo:
    #include "SplashDlg.h"CSplashDlg* CSplashDlg::c_pSplashDlg; //This is required ( in one of the files ) because the static variable 'c_pSplashDlg' is declared outside this file
  2. No método OnInitDialog() , adicione o código a seguir após a linha CDialog::OnInitDialog():
    CSplashDlg::ShowSplashScreen(NULL);
  3. Substituir o método PreTranslate mensagem do CMyAppDlg classe. Para fazer isso, execute as seguintes etapas:
    1. No modo de exibição classe, clique com o botão direito do mouse CMyAppDlg e, em seguida, clique em Propriedades
    2. No painel Propriedades, clique no ícone substituições para exibir a lista de métodos substituíveis.
    3. No campo PreTranslateMessage , clique em <add> PreTranslateMessage.
  4. Modificar o método de substituição PreTranslateMessage que você criou na etapa c da seguinte forma:
    BOOL CMyAppDlg::PreTranslateMessage(MSG* pMsg){	// TODO: Add your specialized code here and call the base class, or both.	 if (CSplashDlg::PreTranslateAppMessage(pMsg))           return TRUE;	return CDialog::PreTranslateMessage(pMsg);}
back to the top

Compilar a solução

Pressione F5 para compilar a solução e para executar o aplicativo. Você pode ver a tela inicial é exibida.

back to the top
Referências
Para obter informações adicionais sobre como adicionar uma tela para um aplicativo baseado no diálogo MFC no Microsoft Visual Studio 6.0, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
190684COMO: Inserir uma tela inicial em um aplicativo baseado em diálogo
back to the top

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 817372 - Última Revisão: 01/06/2006 00:23:18 - Revisão: 2.0

Microsoft Visual C++ 2005 Express Edition, Microsoft Visual C++ .NET 2003 Standard Edition, Microsoft Visual C++ .NET 2002 Standard Edition

  • kbmt kbhowtomaster kbinfo kbhowto kbdlg kblangcpp KB817372 KbMtpt
Comentários