11

MFC 应用程序干净地关闭自身的正确方法是什么?

4

5 回答 5

14
AfxGetMainWnd()->PostMessage(WM_CLOSE);
于 2008-08-18T12:04:20.240 回答
11

以编程方式终止 MFC 应用程序

 void ExitMFCApp()
   {
        // same as double-clicking on main window close box
        ASSERT(AfxGetMainWnd() != NULL);
        AfxGetMainWnd()->SendMessage(WM_CLOSE);
   }

http://support.microsoft.com/kb/117320

于 2012-01-07T10:23:40.803 回答
4

为了支持@Mike的回答,使用这种方法的原因是为了触发正确的关机顺序。对于 MDI/SDI 应用程序尤其重要,因为它使文档有机会在退出前提示保存或取消退出。

@Matt Noguchi,您的方法将绕过这个序列(我想这可能是预期的效果,但如果您将正常的拆解短路,您可能会遇到问题。

于 2008-08-18T14:11:43.260 回答
4
PostQuitMessage( [exit code] );
于 2008-08-18T16:08:33.167 回答
1

如果它是基于对话框的应用程序,您可以通过调用 EndDialog() 函数来完成。

如果它是基于 SDI/MDI 的应用程序,您可以调用 DestroyWindow。但在此之前,您需要自己进行清理(关闭文档、释放内存和资源、销毁创建的任何其他窗口等)。

于 2008-09-18T10:23:26.777 回答