关闭MFC标题栏上的按钮

时间:2009-07-22 06:55:14

标签: visual-studio visual-c++ mfc

在Vc ++ 6.0基于对话框的MFC应用程序中: 我不希望我的用户通过按下窗口右上角的按钮[X]以及(Alt + F4)来关闭窗口。我想显示一个messageBox(“你真的想关闭应用程序”);如果用户单击“确定”按钮,则应用程序必须关闭,否则,如果用户单击“取消”按钮,则不得关闭应用程序。

2 个答案:

答案 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中添加声明/定义。