资源描述:
《VB代码VB小程序:在系统托盘为程序添加图标》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VB代码VB小程序:在系统托盘为程序添加图标当前位置:首页> VB小程序1-99 > 在系统托盘为程序添加图标20. 在系统托盘为程序添加图标 本人原创,转载请注明出处:http://hi.baidu.com/100bd/blog/item/330b4d88ab0fa0b80e244455.html 为程序在系统托盘中添加图标,要解决两个问题: 一、调用 API 函数 Shell_NotifyIcon 添加图标,设置正确的参数。程序结束时,从系统托盘删除添加的图标。 二、拦截窗口的回调函数,响
2、应用户在系统托盘图标上的鼠标事件,一般是弹出快捷菜单。自定义的回调函数不能放在窗体代码中,必须在模块中。 编写有关窗口回调函数的程序,最大的难点在于调试。调试时,如果在窗口回调函数过程的执行期间设置断点,轻则影响窗口的自动重画,重则使程序停止响应。因此,修改代码后应注意及时保存。 下面是实现在系统托盘为程序添加图标的完整代码,包括一个窗体和一个模块:'■■以下是窗体 Form1 的代码 ------------------------------------' 1.为窗体添加菜单' 为窗体添加菜
3、单: mFast' 为 mFast 添加下级子菜单 mmFast,并将 mmFast 的索引设置为 0' 2.在窗体上添加四个控件,所有控件均采用默认设置:' Label1,Command1,Command2,Command3Dim ctTrayIco As NotifyIconDataPrivate Sub Form_Load() Me.Caption = "系统托盘例子" '为数组菜单 mmFast 添加条目 mFast.Visible = F
4、alse LoadKjZu mmFast, "显示 " & Me.Caption & "(&R)", "mmFast-Run" LoadKjZu mmFast, "最小化窗口(&N)", "mmFast-Min" LoadKjZu mmFast, "菜单例子 1 (&A)", "mmFast-A" LoadKjZu mmFas
5、t, "菜单例子 2 (&B)", "mmFast-B" LoadKjZu mmFast, "-" '菜单分隔条 LoadKjZu mmFast, "退出(X)", "mmFast-Exit" Dim S As Single Label1.AutoSize = True: S = Label1.Height Label1.Caption = Me.Caption: Label1.
6、Move S, S Command1.Caption = "添加到系统托盘": Command1.Move S, S * 3, S * 11, S * 2 Command2.Caption = "最小化到系统托盘": Command2.Move S, S * 6, S * 11, S * 2 Command3.Caption = "从系统托盘删除图标": Command3.Move S, S * 9, S * 11, S * 2 '
7、将窗口函数的地址设置为模块中的 WndProc 过程,当用户 '在系统托盘图标单击鼠标右键时,弹出自定义的菜单 mFast WinAddress Me.hWnd ''如果需要程序一启动就添加到系统托盘,解除下面语句的注释即可 'Call SysTrayEnd SubPrivate Sub Form_Resize()'设置快捷菜单的是否可用状态 Dim nEnabled As Boolean On Error Resume Next nEnabled = Me.WindowState
8、 = vbMinimized mmFast(KjZuIndex(mmFast, "mmFast-Min")).Enabled = nEnabled mmFast(KjZuIndex(mmFast, "mmFast-Run")).Enabled = Not nEnabledEnd Su