Qual é a maneira correta de sair programaticamente de um aplicativo MF
Usando o Windows MFC C ++. Eu tenho um aplicativo de terceiros que chama um método definido pelo usuário na minha classe derivada do CWinApp. Este método é chamado após InitInstance (). Se houver um erro nesse método, de forma que uma exceção seja lançada e capturada em um bloco try / catch, eu gostaria de sair do aplicativo do bloco catch. Qual é a maneira correta e canônica de sair?
ATUALIZAR
Emerge eu acredito que é certo que em InitInstance () retornar false é a maneira correta de sair do aplicativo. No entanto, agora suponha que eu queira sair do manipulador OnInitDialog () de uma classe derivada de CDialog, qual é a maneira correta de fazer iss
UPDATE 2
Para mim, achei que chamar o PostMessage (WM_CLOSE) é a melhor maneira da minha classe derivada CDialog não modal. Todos os outros métodos de desistência que eu tentei gerariam uma exceção ou outra em algumas circunstância
Aqui está um exemplo de como eu o uso:
BOOL SomeDialog::OnInitDialog()
{
CDialog::OnInitDialog();
::OleInitialize(nullptr);
try
{
// ...load settings file here
}
catch(...)
{
PostMessage(WM_CLOSE);
return TRUE;
}
// return TRUE unless you set the focus to a control
return TRUE;
}