ID do artigo: 117320 - Última revisão: terça-feira, 21 de novembro de 2006 - Revisão: 3.1

Como terminar um aplicativo MFC programaticamente

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Recolher tudo

Sumário

Sob determinadas condições, talvez queira encerrar um aplicativo MFC através de programação. MFC não fornece uma função pública para sair normalmente um aplicativo.

Mais Informações

Um método para lidar com isso é criar uma função em seu aplicativo como o seguinte:
   void ExitApp()
   {
        // same as double-clicking on main window close box
        ASSERT(AfxGetApp()->m_pMainWnd != NULL);
        AfxGetApp()->m_pMainWnd->SendMessage(WM_CLOSE);
   }
				
como você pode ver, isso é implementado como uma função global, que pode ser chamada de qualquer lugar no seu aplicativo. Ele simplesmente envia uma mensagem WM_CLOSE à janela de mainframe de seu aplicativo. Isso inicia um desligamento ordenado do aplicativo.

Se você estiver usando o MFC, versão 2.5 ou posterior, você pode tirar proveito de uma nova função MFC global, "AfxGetMainWnd", para simplificar o código:
   void ExitMFCApp()
   {
        // same as double-clicking on main window close box
        ASSERT(AfxGetMainWnd() != NULL);
        AfxGetMainWnd()->SendMessage(WM_CLOSE);
   }
				
Observação : sempre chamar CDocument::SetModifiedFlag() após alterar os dados do documento. Isso garantirá que a estrutura solicita que o usuário salve antes do desligamento. Se precisar de mais controle sobre o procedimento de desligamento, você pode substituir CDocument::SaveModified().

A informação contida neste artigo aplica-se a:
  • Microsoft Foundation Class Library 4.2 nas seguintes plataformas
    • Microsoft Visual C++ 1.0 Professional Edition
    • Microsoft Visual C++ 1.5 Professional Edition
    • Microsoft Visual C++ 1.51
    • Microsoft Visual C++ 1.52 Professional Edition
    • Microsoft Visual C++ 1.0 Professional Edition
    • Microsoft Visual C++ 2.0 Professional Edition
    • Microsoft Visual C++ 2.1
    • Microsoft Visual C++ 4.0 Standard Edition
Palavras-chave: 
kbmt KB117320 KbMtpt
Tradução automáticaTradução automática
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: 117320  (http://support.microsoft.com/kb/117320/en-us/ )
Retired KB ArticleAviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.