标签:
通常点击任务栏上的图标时,对应窗体实现“最小化或者恢复”的效果。但是在做最小化到托盘时,不希望点击任务栏图标时最小化到托盘,即希望拦截了这些效果(不允许:通过点击任务栏上的图标,实现“最小化或者恢复”的效果);
具体实现代码如下:
#region 区别 任务栏中点击窗体图标(最小化|恢复)与点击最小化按钮 private int WM_SYSCOMMAND = 0x112; private long SC_MINIMIZE = 0xF020; protected override void WndProc(ref Message m) { if (m.Msg == WM_SYSCOMMAND) { if (m.WParam.ToInt64() == SC_MINIMIZE && m.LParam.ToString() != "0") //m.LParam.ToString() != "0" 表示任务栏中点击窗体图标(最小化|恢复) { HideMainForm(); //这里直接将窗体图盘化//this.isMinBoxHited = true; //点击的是最小化按钮 通过中间变量不可行 return; } } base.WndProc(ref m); } #endregion
如果想实现其他效果可以参考如下:
private int WM_SYSCOMMAND = 0x112; private long SC_MAXIMIZE = 0xF030; private long SC_MINIMIZE = 0xF020; private long SC_CLOSE = 0xF060; protected override void WndProc(ref Message m) { if (m.Msg == WM_SYSCOMMAND) { if (m.WParam.ToInt64() == SC_MAXIMIZE) { //MessageBox.Show("MAXIMIZE "); return; } if (m.WParam.ToInt64() == SC_MINIMIZE) { //MessageBox.Show("MINIMIZE "); return; } if (m.WParam.ToInt64() == SC_CLOSE) { //MessageBox.Show("CLOSE "); return; } } base.WndProc(ref m); }
标签:
原文地址:http://www.cnblogs.com/shenchao/p/4724694.html