C++ 如何在基于MFC对话框的应用程序中关闭主窗口
当我想关闭应用程序时,有人能回答如何关闭基于MFC对话框的应用程序中的主窗口吗?该应用程序是在MS VS 2010中创建的。 事先非常感谢C++ 如何在基于MFC对话框的应用程序中关闭主窗口,c++,mfc,C++,Mfc,当我想关闭应用程序时,有人能回答如何关闭基于MFC对话框的应用程序中的主窗口吗?该应用程序是在MS VS 2010中创建的。 事先非常感谢 Eugene.您可以将WM\u发送到对话框hwnd附近。PostQuitMessage还应允许结束应用程序执行。您可以在对话框hwnd附近发送WM\U。PostQuitMessage还应允许结束应用程序执行。尝试以下操作: ASSERT( AfxGetMainWnd()!=NULL ); AfxGetMainWnd()->SendMessage(WM_
Eugene.您可以将WM\u发送到对话框hwnd附近。PostQuitMessage还应允许结束应用程序执行。您可以在对话框hwnd附近发送WM\U。PostQuitMessage还应允许结束应用程序执行。尝试以下操作:
ASSERT( AfxGetMainWnd()!=NULL );
AfxGetMainWnd()->SendMessage(WM_CLOSE);
试试这个:
ASSERT( AfxGetMainWnd()!=NULL );
AfxGetMainWnd()->SendMessage(WM_CLOSE);
这取决于您希望在关机过程中进行的处理。如果您只想在不进行任何进一步处理的情况下终止消息循环,则可以调用
PostQuitMessage(exitCode)
。exitCode
将存储为进程的退出代码
如果要调用确定/取消处理程序,则必须分别调用OnOK()
或OnCancel()
。OnOK()
的默认实现将尝试保存和验证对话框数据,并在成功执行后调用EndDialog(IDOK)
终止消息循环。OnCancel()
的默认实现只是调用EndDialog(IDCANCEL)
。两者都不允许您为流程指定退出代码。如果您已经重写了这些成员函数中的任何一个,则需要在执行专用代码后调用基类实现,除非您希望防止关闭
请记住,
OnOK()
和OnCancel()
是CDialog[Ex]
的受保护成员,不能从外部直接访问。如果需要从dialog类外部调用其中一个,则必须公开重写它们。您可以使用CMyDialog*pDlg=dynamic\u cast(AfxGetMainWnd())获取指向主对话框的指针代码>这取决于您希望在关机过程中进行的处理。如果您只想在不进行任何进一步处理的情况下终止消息循环,则可以调用PostQuitMessage(exitCode)
。exitCode
将存储为进程的退出代码
如果要调用确定/取消处理程序,则必须分别调用OnOK()
或OnCancel()
。OnOK()
的默认实现将尝试保存和验证对话框数据,并在成功执行后调用EndDialog(IDOK)
终止消息循环。OnCancel()
的默认实现只是调用EndDialog(IDCANCEL)
。两者都不允许您为流程指定退出代码。如果您已经重写了这些成员函数中的任何一个,则需要在执行专用代码后调用基类实现,除非您希望防止关闭
请记住,OnOK()
和OnCancel()
是CDialog[Ex]
的受保护成员,不能从外部直接访问。如果需要从dialog类外部调用其中一个,则必须公开重写它们。您可以使用CMyDialog*pDlg=dynamic\u cast(AfxGetMainWnd())获取指向主对话框的指针代码>但是是否存在用于关闭窗口的CWnd类的成员函数?CWnd::SendMessage将调用::SendMessage,其中hwnd从hwnd附加到此CWnd。实际上,CWnd是WinAPI的一个薄包装,它的大多数(如果不是全部)函数使用SendMessage将其工作委托给WinAPI,但是是否存在用于关闭窗口的CWnd类的成员函数?CWnd::SendMessage将调用::SendMessage,其中hwnd来自附加到此CWnd的hwnd。实际上,CWnd是WinAPI的一个薄包装器,它的大多数(如果不是全部的话)函数使用SendMessage将其工作委托给WinAPI。我希望从应用程序退出到操作系统。因此,我认为PostQuitMessage()将满足这一需求。我试试。PostQuitMessage()很好!它符合需要,解决了我的问题!谢谢。@ USE1687.3考虑阅读以下常见问题:我想退出应用程序到操作系统。因此,我认为PostQuitMessage()将满足这一需求。我试试。PostQuitMessage()很好!它符合需要,解决了我的问题!谢谢。@ USE1687.3考虑阅读以下常见问题: