禁用窗口上的关闭按钮

Posted on 2018-12-15 15:56  努力成长静待花开  阅读(1014)  评论(0编辑  收藏  举报

实现效果:

  

知识运用:

  窗口处理方法WndProc的重写方法 在其内部截取关闭窗口的消息以实现禁用

  该方法主要用来处理Windows消息

  protected virtual void WndProc(ref Message m)   //m: 要处理的windows消息

实现代码:

        protected override void WndProc(ref Message m)
        {
            const int WM_SYSCOMMAND = 0x0112;   //定义将要截取的消息类型
            const int SC_CLOSE = 0xf060;        //定义关闭按钮对应的消息值
            if (m.Msg==WM_SYSCOMMAND&((int)m.WParam == SC_CLOSE))
            {
                return;     //直接返回不进行处理
            }
            base.WndProc(ref m);//传递下一条消息
        }