winform中屏蔽双击最大化或最小化窗体(C#实现),禁用任务管理器结束程序,在需要屏蔽双击窗体最大化、最小化、关闭
winform中屏蔽双击最大化或最小化窗体(C#实现),禁用任务管理器结束程序,在需要屏蔽双击窗体最大化、最小化、关闭
protected override void WndProc(ref Message m) { #region 处理点击窗体标题栏放大缩小问题,禁用点击窗体标题栏放大缩小 //logger.Info($"{m.Msg}"); //处理点击窗体标题栏放大缩小问题,禁用点击窗体标题栏放大缩小 //MaximizeBox = false; //if (m.Msg == 0xa3) //{ // return; //} #endregion #region 在winform中屏蔽双击最大化或最小化窗体(C#实现),禁用任务管理器结束程序,在需要屏蔽双击窗体最大化、最小化、关闭、拖拽窗体中写入以下代码,可以根据需要取舍代码 if (m.Msg == 0x112) { switch ((int)m.WParam) { //禁止双击标题栏关闭窗体 case 0xF063: case 0xF093: m.WParam = IntPtr.Zero; break; //禁止拖拽标题栏还原窗体 case 0xF012: case 0xF010: m.WParam = IntPtr.Zero; break; //禁止双击标题栏 case 0xf122: m.WParam = IntPtr.Zero; break; //允许关闭按钮 case 0xF060: //m.WParam = IntPtr.Zero; break; //允许最大化按钮 case 0xf020: //m.WParam = IntPtr.Zero; break; //允许最小化按钮 case 0xf030: //m.WParam = IntPtr.Zero; break; //允许还原按钮 case 0xf120: //m.WParam = IntPtr.Zero; break; default: m.WParam = IntPtr.Zero; break; } } #endregion #region MyRegion //// 定义 WM_SYSCOMMAND 消息常量 //private const int WM_SYSCOMMAND = 0x0112; //// 定义 SC_CLOSE 消息常量 //private const int SC_CLOSE = 0xF060; //// 检查消息是否是系统命令 //if (m.Msg == 0x0112 && m.WParam.ToInt32() == 0xF060) //{ // // 如果你想允许关闭,不需要处理,直接调用基类的WndProc即可 // // base.WndProc(ref m); // // 如果你想弹出消息框并等待用户响应,可以这样做: // DialogResult result = MessageBox.Show("确定要退出吗?", "退出确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question); // if (result == DialogResult.Yes) // { // // 用户选择"是",可以关闭窗体 // this.Close(); // } // // 否则,不做任何操作,弹窗将保持打开状态 // // 阻止默认的关闭处理 // return; //} #endregion base.WndProc(ref m); }
龙腾一族至尊龙骑