首页 > 编程语言 >winform中屏蔽双击最大化或最小化窗体(C#实现),禁用任务管理器结束程序,在需要屏蔽双击窗体最大化、最小化、关闭

winform中屏蔽双击最大化或最小化窗体(C#实现),禁用任务管理器结束程序,在需要屏蔽双击窗体最大化、最小化、关闭

时间:2024-12-20 15:24:06浏览次数:8  
标签:WParam case IntPtr break 窗体 最小化 双击

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);
 }

 参考链接:https://www.cnblogs.com/AlexanderZhao/p/12878860.html

标签:WParam,case,IntPtr,break,窗体,最小化,双击
From: https://www.cnblogs.com/1175429393wljblog/p/18619339

相关文章

  • 全国高等学校(安徽考区)计算机水平考试,考试模拟app双击登录打开报出“数据库连接错误请
    运行环境为:Win11系统;压缩包:去官网CCT-全国高校计算机水平考试(office,c,python,vb,vfp,access等)模拟系统-更新至2024上半年!-计算机科学与工程学院欢迎您!https://jsj.aust.edu.cn/info/1334/6137.htm一、出现情况为:下载安装后的模拟应用软件双击打开报出:“数据库连接错误请联......
  • Delphi 在窗体界面显示之后执行事件 AfterShow
    正常情况下,需要在启动之后直接执行某事件,一般会将函数放在Create或者OnShow里面。但是,这种情况下,当事件耗时较久是,界面会迟迟不肯出现,只能等待Create喝OnShow执行完毕之后才会显示。为了能够在界面能够先出现,然后运行需要的事件,可以使用消息的机制自定义添加一个AfterShow的函数......
  • Qt QHeaderView自绘实现表头双击编辑
    在使用QTreeWidget展示数据时,想要让表头可以编辑。但是QTreeWidget并没有提供这样的API。于是想到了,通过QHeaderView自绘去实现这样的需求。效果图:头文件://CustomHeader.h#pragmaonce#include<QHeaderView>#include<QLineEdit>#include<QHeaderView>#inclu......
  • 做了个Java打包工具,可以双击启动了!
    我日常工作主要使用Java进行开发,业余时间也热衷于技术研究,喜欢用Java的GUI库Swing开发一些实用的小工具。但是用Swing开发软件相比C/C++的一个很大的劣势就是,Java打包出来的文件不能直接运行,需要使用JRE(Javaruntimeenvironment)才能运行,如果使用软件的人没有JRE,也不能运行......
  • WPF中嵌入第三方窗体-WindowsFormsHost使用
    嵌入第三方窗体到Windows窗体或控件中,通过调用API方法很容易实现,但是在WPF存在一些问题,这里对解决这些问题的方法做一点笔记:首先说一下要做嵌入第三方窗体要用到的API方法[DllImport("user32.dll",SetlastError=true)]privatestaticexternIntPtrSetParent(IntPtrhWndC......
  • Winform窗体控件双向绑定数据模拟读写PLC数据
    1.用Modbus工具模拟PLC2.创建一个实体类点击查看代码internalclassData:INotifyPropertyChanged{ushort[]ushorts=newushort[10];publicushortD0{get=>ushorts[0];set{ushorts[0]=value;OnPropertyChanged(nameof(D0));}}publicushor......
  • vs2022中windows窗体winform没有窗体设计器问题处理
    环境:vs2022,.net8,winfrom项目。问题:这几天重新换了个代码托管库,上传拉取代码后(换了本地目录),发现所有窗体都只能打开代码,不能打开窗体设计器进行控件的调整修改等。网上找了n多资料都无效。无意中发现是.user文件导致,这个文件一般在源码管理中是排除的。处理如下:项目名:WinForms......
  • 蓝桥杯备考冲刺必刷题(Python) | 3412 最小化战斗力差距
    学习Python从娃娃抓起!记录下蓝桥杯备考比赛学习过程中的题目,记录每一个瞬间。附上汇总贴:蓝桥杯备考冲刺必刷题(Python)|汇总-CSDN博客【题目描述】小蓝是机甲战队的队长,他手下共有$n$名队员,每名队员都有一个战斗力值$$w_i$$。现在他需要将这$$n$$名队友分成两组$$a$$和$$b$......
  • 用js实现最大化和最小化窗口
    //最大化窗口functionmaximizeWindow(){if(window.innerWidth<screen.availWidth||window.innerHeight<screen.availHeight){if(document.documentElement.requestFullscreen){document.documentElement.requestFullscreen();}elseif(d......
  • [Python]已解决。pycharm突然打不开了,安装PyCharm后,双击没反应。pycharm无法打开
    前两天刚装的pycharm,今天双击之后突然打不开了,好几次没有反应。我试了以下方法:1.方法一:管理员身份运行,直接右键选择,或者在下方搜索框输入PyCharm后点以管理员身份运行如果你也和我一样,这一步还不行,请继续往下看。2.方法二:修改Roaming文件2.1找到AppData。C盘--用户--User(......