在标题栏的MFC关闭(Close Button on Title Bar in MFC)

2019-07-30 14:01发布

在VC ++ 6.0基于对话框的MFC应用程序:我不希望我的用户通过在顶部右侧窗口本身的按下按钮[X]也(ALT + F4)关闭窗口。 我想显示一个消息框(“你真的要关闭应用程序”); 如果用户单击OK按钮,然后应用程序,如果用户点击取消按钮,那么应用程序不能关闭,关闭,否则。

Answer 1:

您需要实现OnClose()只调用基类的OnClose()如果你想退出。



Answer 2:

处理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和下拉组合双击添加的处理程序。

要么

您可以通过添加消息映射条目手工做得一样好。 并分别.H /添加的.cpp声明/定义。



文章来源: Close Button on Title Bar in MFC