我想问用户“你确定要退出应用程序吗?” 问题。如果用户按下是,应用程序将终止。如果用户按下否,应用程序将继续运行。我怎么做?
我使用 Visual c++ 2008 和 mfc。
我想问用户“你确定要退出应用程序吗?” 问题。如果用户按下是,应用程序将终止。如果用户按下否,应用程序将继续运行。我怎么做?
我使用 Visual c++ 2008 和 mfc。
您需要处理WM_CLOSE
消息,这可以在 MFC 中通过添加ON_WM_CLOSE
到您的CMainFrame
类的消息映射中来完成,并提供该OnClose
函数的实现。
(类向导可以为您做到这一点。)
void CMainFrame::OnClose()
{
if (AfxMessageBox("Exit application?", MB_YESNO) == IDYES)
__super::OnClose();
}
__super
是一个 MSVC 扩展,允许您引用最直接的基类。如果您在另一个编译器中编译(不太可能用于 MFC 应用程序),或者使用非标准扩展让您感到不舒服,您可以替换基类的实际名称。
Marijke 建议的方法是正确的。但是要编译它,您必须在 CMainFrame 消息映射中添加 ON_WM_CLOSE,并且您必须使用 Marijke 使用 CFrameWnd 的实际基类。(有几个可能的基类。)例如,如果基类是 CMDIFrameWndEx,则消息映射可能如下所示:
BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWndEx)
ON_WM_CREATE()
ON_WM_CLOSE()
....