如何在基于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() );
获得指向主对话框的指针。
相关文章:
- 如何将一个窗口保留在另一个应用程序窗口的前面
- 在C++中获取应用程序窗口的大小
- 如何隐藏最大化和最小化按钮并在qml应用程序窗口中显示关闭按钮?
- 当电子的窗口隐藏时如何激活另一个应用程序窗口
- 如何在QT中获取背景应用程序窗口标题
- 您如何使用Winrt创建经典的Win32应用程序窗口
- 当模式窗口最小化时,最小化所有应用程序窗口(在 Linux 上)
- 更改 C++ 应用程序的应用程序窗口图标
- 仅从 EnumDesktopWindows 识别应用程序窗口
- 隐藏自定义应用程序窗口,但应在任务栏上显示应用程序图标(不是作为托盘图标)
- 如何在应用程序窗口中设置光标位置?(C )
- QT QML - 在 C++ 的现有应用程序窗口中显示一个矩形
- 如何通过QT 5.6设置QML应用程序窗口透明
- 打开不同的图像文件,并使用GDI 库在主应用程序窗口的背景上绘制它们
- 获取应用程序窗口的完整目录
- 在linux中动态地将应用程序窗口排列在一个又一个之上
- 在Gnome或KDE中以编程方式移动桌面上的应用程序窗口
- Qt5.6 RHEL全屏应用程序窗口和子窗口
- Visual Studio 2012应用程序窗口创建/调整大小与VS2008窗口创建不同?为什么?
- QtQuick2 无法将应用程序窗口关闭信号连接到方法(C++新手)