当前位置:首页 > Windows程序 > 正文

C#:隔离点击任务栏上的图标时的“最小化或者恢复”的效果

2021-03-27 Windows程序

  通常点击任务栏上的图标时,,对应窗体实现“最小化或者恢复”的效果。但是在做最小化到托盘时,不希望点击任务栏图标时最小化到托盘,即希望拦截了这些效果(不允许:通过点击任务栏上的图标,实现“最小化或者恢复”的效果);

具体实现代码如下:

#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

View Code

如果想实现其他效果可以参考如下:

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

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/68536.html