C# Winform 捕获窗体的最小化和最大化事件、关闭按钮事件【整理】
之前做过一些窗体最小化之后隐藏窗体到右下角托盘的程序,一般就几个事件和属性的处理:程序启动不显示在任务栏,点击最小化后隐藏到右下角的托盘,点击托盘图标可以弹出程序界面。(具体怎样做读者可以自行搜索,因为都大同小异我就不写了)
但是最近在做一个程序的时候遇到一个问题,最小化之后虽然不显示在任务栏,但是窗体却缩小到屏幕的左下角,结果还是不能实现真正的隐藏。
可是我找出以前写的一些程序来看,运行没问题啊,最小化不会缩小到屏幕左下角啊,代码也是一样的啊,难道~~又是人品问题 - -!
目前用以前的方法仍无法解决这个问题,期待高手解答....
好了,于是我又去搜了一些资料,就是下面这块代码了,完美解决,于是开始研究WndProc这个东东...
const int WM_SYSCOMMAND = 0x112; const int SC_CLOSE = 0xF060; const int SC_MINIMIZE = 0xF020; const int SC_MAXIMIZE = 0xF030; protected override void WndProc(ref Message m) { if (m.Msg == WM_SYSCOMMAND) { if (m.WParam.ToInt32() == SC_MINIMIZE) //是否点击最小化 { //这里写操作代码 this.Visible = false; //隐藏窗体 return; } if (m.WParam.ToInt32() == SC_MAXIMIZE ) { //..................... } if (m.WParam.ToInt32() == SC_CLOSE ) { //.....................} } base.WndProc(ref m); } //这个功能是 捕获最小化按钮事件 ,隐藏当前窗体.