捕获winform的最小化,最大化,关闭事件

捕获winform的最小化,最大化,关闭事件

因为项目需要在winform关闭的时候,处理一些程序,在满足条件后,则关闭对话框。winform好像没有处理最大化,最小化相关的事件,这里借用网上的一段代码,对这些事件进行捕获

const int WM_SYSCOMMAND = 0x112;  
const int SC_CLOSE = 0xF060;
const int SC_MINIMIZE = 0xF020;
const int SC_MAXIMIZE = 0xF030;
const int SC_RESTORE = 61728;
//窗体按钮的拦截函数
protected override void WndProc(ref Message m){
    if (m.Msg == WM_SYSCOMMAND){
        if (m.WParam.ToInt32() == SC_RESTORE){

            log.Info("窗口还原!");
        }
        if (m.WParam.ToInt32() == SC_MINIMIZE)  //拦截最小化按钮{
            //这里写操作代码
            log.Info("点击最小化按钮!");
        }
        if (m.WParam.ToInt32() == SC_MAXIMIZE )   //拦截窗体最大化按钮{
            log.Info("点击最大化按钮!");
             //.....................
        }
        if (m.WParam.ToInt32() == SC_CLOSE)       //拦截窗体关闭按钮 {
            log.Info("点击窗口关闭按钮!");
        }
    }
    base.WndProc(ref m);

}

 这里的前提需要确定事件对应的m.WParam是多少,这里有个小方法,在该程序处打断点,调试应用程序的时候,点击最小化,最大化等按钮,程序就到到断点处,你查看该值是多少,就可了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值