zoukankan      html  css  js  c++  java
  • 如何禁用窗口关闭按钮在一个 MFC 多文档界面 (MDI) 应用程序

    在某些情况下可以防止用户单击关闭按钮以关闭 MFC 应用程序中的框架窗口的窗口的标题栏中。 关闭按钮可以删除删除在 WS_SYSMENU 样式从帧窗口。 但是,此的 Minimize 最大化,和还原按钮也删除,并且无法添加。 这是 Windows 的设计的依据。

    要解决此限制,可以通过禁用关闭按钮来模拟没有关闭按钮在窗口的功能。 在 WM_CREATE 消息处理程序中的 MDI 子框架窗口 (CMDIChildWnd 派生类) 禁用在关闭按钮使用下面的代码:

    CMenu *pSysMenu = GetSystemMenu(FALSE);
    ASSERT(pSysMenu != NULL);
    VERIFY(pSysMenu->RemoveMenu(SC_CLOSE, MF_BYCOMMAND));
    				

    子框架窗口未处于最大化时, 以上代码禁止用户通过单击关闭按钮关闭子框架窗口。 当子框架窗口最大化时以上代码将使显示禁用关闭按钮。 但是,用户仍然可以通过单击此窗口关闭按钮关闭子框架窗口。 可以通过它发送到子框架窗口时捕获 SC_CLOSE 命令并阻止此命令的进一步处理阻止这。 为此这一点,请使用 WM_SYSCOMMAND 消息处理程序为下面的示例中的子框架的类:

    // CChildFrame is a CMDIChildWnd-derived class.
    void CChildFrame::OnSysCommand(UINT nID, LPARAM lParam)
    {
        if(nID == SC_CLOSE)
            return;
        CMDIChildWnd::OnSysCommand(nID, lParam);
    }
    				
  • 相关阅读:
    LeetCode 150:逆波兰表达式求值 Evaluate Reverse Polish Notation
    LeetCode 20:有效的括号 Valid Parentheses
    LeetCode 155:最小栈 Min Stack
    rsync & sersync 实时同步
    rsync & inotify-tools 实时同步
    rsync 应用总结
    Linux 变量详解
    特殊权限
    Linux 三剑客之sed命令总结
    expect 分发ssh key脚本
  • 原文地址:https://www.cnblogs.com/buffer/p/1434578.html
Copyright © 2011-2022 走看看