首页 > 代码库 > Winform 拦截最小化、最大化、关闭事件【整理】
Winform 拦截最小化、最大化、关闭事件【整理】
1 const int WM_SYSCOMMAND = 0x112; 2 //窗体关闭消息 3 const int SC_CLOSE = 0xf060; 4 //窗体最小化消息 5 const int SC_MINIMIZE = 0xf020; 6 //窗体最大化消息 7 const int SC_MAXIMIZE = 0xf030; 8 //窗体还原消息 9 const int SC_NOMAL = 0xf120;10 //窗体还原消息11 const int SC_RESTORE = 61728;12 13 //窗体按钮的拦截函数14 protected override void WndProc(ref Message m)15 {16 17 if (m.Msg == WM_SYSCOMMAND)18 {19 //If m.WParam.ToInt32() = SC_RESTORE Then20 // ‘拦截还原按钮21 // Exit Sub22 //End If23 24 if (m.WParam.ToInt32() == SC_NOMAL)25 {26 //拦截还原按钮27 28 return;29 }30 //if (m.WParam.ToInt32() == SC_MINIMIZE)31 //{32 // //拦截最小化按钮33 // //这里写操作代码34 35 // return;36 //}37 if (m.WParam.ToInt32() == SC_MAXIMIZE)38 {39 //拦截窗体最大化按钮40 //.....................41 42 return;43 }44 45 46 //窗体关闭消息47 if (m.WParam.ToInt32() == SC_CLOSE)48 {49 if (MessageBox.Show("您确认要退出吗?", "", MessageBoxButtons.OKCancel) == DialogResult.OK)50 {51 System.Environment.Exit(System.Environment.ExitCode);52 }53 else54 {55 return;56 }57 58 }59 }60 base.WndProc(ref m);61 62 }63 64 65 }
VB
1 Const WM_SYSCOMMAND As Integer = &H112 2 Const SC_CLOSE As Integer = &HF060 ‘窗体关闭消息 3 Const SC_MINIMIZE As Integer = &HF020 ‘窗体最小化消息 4 Const SC_MAXIMIZE As Integer = &HF030 ‘窗体最大化消息 5 Const SC_NOMAL As Integer = &HF120 ‘窗体还原消息 6 Const SC_RESTORE As Integer = 61728 ‘窗体还原消息 7 8 ‘窗体按钮的拦截函数 9 Protected Overrides Sub WndProc(ByRef m As Message)10 11 If m.Msg = WM_SYSCOMMAND Then12 ‘If m.WParam.ToInt32() = SC_RESTORE Then13 ‘ ‘拦截还原按钮14 ‘ Exit Sub15 ‘End If16 17 If m.WParam.ToInt32() = SC_NOMAL Then18 ‘拦截还原按钮19 20 Exit Sub21 End If22 If m.WParam.ToInt32() = SC_MINIMIZE Then23 ‘拦截最小化按钮24 ‘这里写操作代码25 26 Exit Sub27 End If28 If m.WParam.ToInt32() = SC_MAXIMIZE Then29 ‘拦截窗体最大化按钮30 ‘.....................31 32 Exit Sub33 End If34 ‘拦截双击标题栏、移动窗体的系统消息35 If m.Msg <> &HA3 AndAlso m.Msg <> &H3 AndAlso m.WParam <> &HF012 Then36 MyBase.WndProc(m)37 End If38 39 If m.WParam.ToInt32() = SC_CLOSE Then40 41 Exit Sub42 43 End If44 End If45 MyBase.WndProc(m)46 47 End Sub
最小化、最大化、关闭按钮不显示
this.ControlBox = false; // 设置不出现关闭按钮
Winform 拦截最小化、最大化、关闭事件【整理】
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。