在Vc ++ 6.0基于对话框的MFC应用程序中: 我不希望我的用户通过按下窗口右上角的按钮[X]以及(Alt + F4)来关闭窗口。我想显示一个messageBox(“你真的想关闭应用程序”);如果用户单击“确定”按钮,则应用程序必须关闭,否则,如果用户单击“取消”按钮,则不得关闭应用程序。
答案 0 :(得分:3)
如果要退出,则需要实现OnClose()
并仅调用基类的OnClose()
。
答案 1 :(得分:3)
处理WM_SYSCOMMAND
消息,并在其中执行此类操作。
void CMyApp::OnSysCommand(UINT nID, LPARAM lParam)
{
if(nID == SC_CLOSE)
{
if(MessageBox(_T("Really"), _T("What"), MB_YESNO) == IDYES);
//Do What you want here.
else
//Do something else
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
以下是如何将WM_SYSCOMMAND处理程序添加到您的代码中:
转到ClassView。如果它是基于对话框的应用程序,请右键单击对话框类;如果是SDI / MDI应用程序,则右键单击您的大型机类。单击“属性”。
在“属性”窗口中,单击“消息”按钮。向下滚动到WM_SYSCOMMAND并在下拉组合中双击以添加处理程序。
OR
您也可以通过在消息映射中添加条目来手动执行此操作。并分别在.h / .cpp中添加声明/定义。