Wie kann ich denn mein Programm beenden?



  • Hallo.
    Wie kann ich denn meinem Programm beibringen sich zu beenden?
    Ich habe ein MFC SDI Programm welches ein modale Dialogfenster erzeugt.
    Beim klick auf Abbrechen (Cancel-Button) des Dialogfensters schliesst sich das Dialogfenster.
    Ich will nun aber das sich das ganze Programm beendet weshalb ich folgendes gemacht habe.
    Bei einem Mausklick in der Ansicht wird das modale Dialogfenster erzeugt.

    void CDialogButtonView::OnLButtonDown(UINT nFlags, CPoint point)
    {
    CMyDialog md; //erzeugen des Dialogfensters
    int ret = md.DoModal(); //return-wert merken ret = 2

    if(ret == 2)
    {
    DestroyWindow(); //gesamtes Programm beenden
    }

    CView::OnLButtonDown(nFlags, point);
    }

    Ich bekomme die Fehlermeldung ‘Unbehandelte Ausnahme in DialogButton.exe’
    Und
    ‚nicht abgefangene Ausnahme in DialogButton.exe’

    Wie kann ich mein Programm beenden wenn ich auf den Abbrechen-Button klicke?

    plutonium2

    plutonium2


  • Administrator

    void CDialogButtonView::OnLButtonDown(UINT nFlags, CPoint point) 
    { 
        CMyDialog md; //erzeugen des Dialogfensters 
        int ret = md.DoModal(); //return-wert merken ret = 2 
    
        if(ret == 2) 
        { GetParent()->PostMessage(WM_CLOSE); } //gesamtes Programm beenden 
    
        CView::OnLButtonDown(nFlags, point); 
    }
    

    Durch das senden von WM_CLOSE an das Parent Fenster, wird das CMainFrame Fenster geschlossen. Das ist als würde jemand z.b. auf das X oben rechts drücken.

    Grüssli



  • Hallo Dravere.
    Echt super. Das funktioniert.

    Vielen Dank.

    plutonium2


Log in to reply