1

我想问用户“你确定要退出应用程序吗?” 问题。如果用户按下是,应用程序将终止。如果用户按下否,应用程序将继续运行。我怎么做?

我使用 Visual c++ 2008 和 mfc。

4

2 回答 2

2

您需要处理WM_CLOSE消息,这可以在 MFC 中通过添加ON_WM_CLOSE到您的CMainFrame类的消息映射中来完成,并提供该OnClose函数的实现。

(类向导可以为您做到这一点。)

void CMainFrame::OnClose()
{
    if (AfxMessageBox("Exit application?", MB_YESNO) == IDYES)
        __super::OnClose();
}

__super是一个 MSVC 扩展,允许您引用最直接的基类。如果您在另一个编译器中编译(不太可能用于 MFC 应用程序),或者使用非标准扩展让您感到不舒服,您可以替换基类的实际名称。

于 2013-05-22T07:17:51.803 回答
0

Marijke 建议的方法是正确的。但是要编译它,您必须在 CMainFrame 消息映射中添加 ON_WM_CLOSE,并且您必须使用 Marijke 使用 CFrameWnd 的实际基类。(有几个可能的基类。)例如,如果基类是 CMDIFrameWndEx,则消息映射可能如下所示:

BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWndEx)
ON_WM_CREATE()
ON_WM_CLOSE()
....
于 2013-05-22T14:45:05.523 回答