我想问用户“你确定要退出申请吗?”题。如果用户按是,则应用程序将终止。如果用户按下否,则应用程序将继续运行。我该怎么做?
我使用visual c ++ 2008和mfc。
答案 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()
....