繁体   English   中英

如何在基于MFC对话框的应用程序中关闭主窗口

[英]How to close the main window in MFC dialog-based application

当我要关闭应用程序本身时,有人可以回答如何在基于MFC对话框的应用程序中关闭主窗口吗? 该应用程序是在MS VS 2010中创建的。非常感谢。

尤金。

尝试这个:

ASSERT( AfxGetMainWnd()!=NULL );
AfxGetMainWnd()->SendMessage(WM_CLOSE);

您可以将WM_CLOSE发送到对话框hwnd。 PostQuitMessage还应该允许结束应用程序执行。

这取决于您要在关闭过程中进行哪些处理。 如果您只想终止消息循环而不进行任何进一步的处理,则可以调用PostQuitMessage( exitCode ) exitCode将作为进程的退出代码存储。

如果要调用OK / Cancel处理程序,则必须分别调用OnOK()OnCancel() OnOK()的默认实现将尝试保存和验证对话框数据,并在成功执行后调用EndDialog( IDOK )以终止消息循环。 OnCancel()的默认实现只是调用EndDialog( IDCANCEL ) 两种方法都不允许您为过程指定退出代码。 如果您覆盖了这两个成员函数中的任何一个,则您需要在执行专用代码后调用基类实现,除非您希望防止关机。

请记住, OnOK()OnCancel()CDialog[Ex]受保护成员,不能从外部直接访问。 如果您需要从对话框类之外调用任何一个,则必须公开重写它们。 您可以使用CMyDialog* pDlg = dynamic_cast< CMyDialog* >( AfxGetMainWnd() );指向主对话框的指针CMyDialog* pDlg = dynamic_cast< CMyDialog* >( AfxGetMainWnd() );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM