Was ist der richtige Weg, um programmgesteuert beenden einer MFC-Anwendung?

Mithilfe der windows-MFC C++. Ich habe eine Drittanbieter-app, die ruft eine benutzerdefinierte Methode in meinem CWinApp abgeleiteten Klasse. Diese Methode wird aufgerufen, nach InitInstance(). Wenn es einen Fehler in dieser Methode, so dass eine Ausnahme geworfen und gefangen in einem try/catch-block, ich möchte die Anwendung beenden aus dem catch-block. Was ist der übliche und richtige Weg, das zu beenden?

UPDATE:

Serge ich glaube, richtig ist, dass in der InitInstance() false zurückgeben, ist der richtige Weg, um die Anwendung zu beenden. Aber nun mal angenommen, ich möchte aufhören von einer von CDialog abgeleiteten Klasse OnInitDialog () - handler, was ist der richtige Weg, das zu tun.

UPDATE 2

Für mich, ich fand den Aufruf von PostMessage(WM_CLOSE) der beste Weg zu sein von meinem nicht-modale CDialog abgeleitete Klasse. Alle anderen Methoden aufzugeben, versuchte ich erheben würde einige Ausnahme-oder anderen in manchen Situationen.

Hier ist ein Beispiel, wie ich es verwenden:

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;
}

InformationsquelleAutor der Frage User | 2011-09-26

Schreibe einen Kommentar