winform实现任务栏隐藏、通知栏图标及右键、类似QQ隐藏窗体等功能
来源:互联网 发布:如何备份网站数据库 编辑:程序博客网 时间:2024/04/28 05:18
1。第一个功能是任务栏隐藏。winform下有个属性showintaskbar。直接改为false即可。 if (this.Top < 3) { if (this.Handle == FormNameAt(Cursor.Position.X, Cursor.Position.Y)) { this.Top = 0;//使窗体致顶 } else { this.Top = -(this.Height - 2); } } //获取当前鼠标下可视化控件的句柄 [DllImport("user32.dll")] public static extern int WindowFromPoint(int xPoint, int yPoint); //获取指定句柄的父级句柄 [DllImport("user32.dll", ExactSpelling = true, CharSet = CharSet.Auto)] public static extern IntPtr GetParent(IntPtr hWnd);
public IntPtr FormNameAt(int x, int y) { IntPtr Tem_hWnd;//设置存储句柄的变量 IntPtr Tem_Handle = (IntPtr)(WindowFromPoint(x, y)); Tem_hWnd = Tem_Handle;//记录原始句柄 while (Tem_hWnd != ((IntPtr)0)) { Tem_Handle = Tem_hWnd; Tem_hWnd = GetParent(Tem_hWnd); } return Tem_Handle; } this.Visible = true; this.WindowState = FormWindowState.Normal; if (this.WindowState == FormWindowState.Minimized) { this.Visible = false; }
2。第二个功能是添加通知栏图标。有个控件为notifyicon,直接拉过来,添加图标即可。
3。第三个功能,实现类似QQ的隐藏窗体,把窗体拖到屏幕上方就会缩起来的效果。首先拉一个时钟,设置时间间隔为300毫秒,在时钟里面添加代码:
其他相关函数如下:
运行程序,可以发现窗体拉上去可以隐藏了,而且鼠标移到上面的时候弹出来,而且不会缩回去。
4。接下来的功能就是要实现最小化后通知栏鼠标双击的时候恢复窗体的效果。给notifyicon添加双击事件,添加如下代码
而实际上我们发现,最小化的时候,窗体并没有完全隐藏,而是所在左下角的地方,因此我们需要多做一个操作,添加窗体的Deactivate事件,添加如下代码
也就可以明白为什么上面要添加this.Visible = true;了。
5。最后实现通知栏图标右键的功能,拖一个contextmenustrip控件即可,其操作跟菜单一致。然后在notifyicon中contextmenustrip属性添加上刚才拉进来的控件就行啦~~
6。获取窗体最小化 最大化 关闭事件
const int WM_SYSCOMMAND = 0x112; const int SC_CLOSE = 0xF060; const int SC_MINIMIZE = 0xF020; const int SC_MAXIMIZE = 0xF030; /// <summary> /// 重写窗体事件 /// </summary> /// <param name="m"></param> 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); }
- winform实现任务栏隐藏、通知栏图标及右键、类似QQ隐藏窗体等功能
- Winform窗体实现类似停靠在屏幕边缘时自动隐藏的功能 .doc
- Java实现窗体隐藏,功能类似于QQ窗口自动隐藏
- C#实现类似QQ的隐藏浮动窗体、消息闪动
- 类似QQ窗体靠边隐藏原理
- C#如何实现类似QQ那样靠边隐藏的功能
- CCProxy隐藏任务栏图标及启动画面
- 隐藏窗口和任务栏图标的实现
- 隐藏任务栏图标
- 隐藏任务栏图标
- Jframe任务栏图标隐藏
- 隐藏任务栏图标
- C#实现系统托盘,C#窗体最小化时隐藏为任务栏图标
- C#实现系统托盘,C#窗体最小化时隐藏为任务栏图标的Window appllication
- C#实现系统托盘,C#窗体最小化时隐藏为任务栏图标
- Delphi XE4 主窗体隐藏之后任务栏没有图标显示。
- WPF 程序点击任务栏图标显示隐藏最小化窗体
- windows/mfc实现窗口隐藏同时 在任务栏上无图标显示功能
- 演示百度地图操作功能
- 奋战杭电ACM(DAY9)1014
- 个人学习模型
- LCS最大公共子序列问题
- unable to load default svn client 和 Eclipse SVN 插件与TortoiseSVN对应关系
- winform实现任务栏隐藏、通知栏图标及右键、类似QQ隐藏窗体等功能
- 高性能网络编程3----TCP消息的接收
- (5) - 多线程 (图)
- ural 1018 Binary Apple Tree(树形dp | 经典)
- 暑假
- 产品-如何评价“抬杠”-来自知乎
- Linq在三层中的使用
- 程序员之路!
- 数据库的垂直划分和水平划分