用户按下X按钮确认退出

时间:2013-05-22 07:15:19

标签: visual-c++ mfc

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

我使用visual c ++ 2008和mfc。

2 个答案:

答案 0 :(得分:2)

您需要处理WM_CLOSE消息,该消息可以通过adding ON_WM_CLOSE to your CMainFrame class's message map在MFC中执行,并提供OnClose函数的实现。

(班主任可以为你做这件事。)

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

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

答案 1 :(得分:0)

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

BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWndEx)
ON_WM_CREATE()
ON_WM_CLOSE()
....