[英]I want to display something in a dialog in MFC Dialog-Based but it doesnt display anything in my main dialog !
[英]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.