So schließen Sie das Haupt-Fenster in MFC-Dialogfeld-basierten Anwendung
Kann jemand beantworten, wie nahe der wichtigsten Fenster in MFC-Dialogfeld-basierten Anwendung, wenn ich will, um zu schließen Sie die Anwendung selbst? Die Anwendung wurde erstellt in MS VS 2010.
Vielen Dank im Voraus.
Eugene.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
Können Sie WM_CLOSE senden, um Ihre dialog-hwnd. PostQuitMessage sollte auch erlauben, zu Ende der Ausführung der Anwendung.
Es hängt davon ab, welche Verarbeitung Sie wollen zu geschehen, als Teil der Herunterfahren. Wenn alle Sie wollen, ist zu beenden, die Nachricht Schleife, ohne weitere Verarbeitung, die Sie anrufen können
PostQuitMessage( exitCode )
. DieexitCode
gespeichert werden, wie der Prozess exit-code.Möchten Sie zum aufrufen die OK - /Abbrechen-Handler zu nennen
OnOK()
oderOnCancel()
beziehungsweise. Die default-Implementierung fürOnOK()
wird versuchen, zu speichern und überprüfen Sie die Dialogfeld Daten und bei erfolgreicher Ausführung AnrufEndDialog( IDOK )
beendet die message loop. Die default-Implementierung fürOnCancel()
ruft einfachEndDialog( IDCANCEL )
. Weder einer können Sie angeben, dass eine exit-code für Ihren Prozess. Wenn Sie überschrieben haben, entweder von den Funktionen, die Sie benötigen, um die basisklassenimplementierung aufrufen, nachdem Sie Ihre speziellen code, es sei denn, Sie wollen verhindern das Herunterfahren.Beachten Sie, dass
OnOK()
undOnCancel()
sind protected-ElementeCDialog[Ex]
und kann nicht direkt von außen zugreifbar. Wenn Sie brauchen, rufen Sie entweder eine von außen Ihre dialog-Klasse, die Sie haben, Sie zu überschreiben öffentlich. Sie können einen Zeiger auf den wichtigsten dialog überCMyDialog* pDlg = dynamic_cast< CMyDialog* >( AfxGetMainWnd() );
.