本文详细介绍用VB编写托盘程序
代码窗口的内容为:
Dim MyNot As NOTIFYICONDATA 定义一个托盘结构
Private Sub Command1_Click()
按下删除托盘图标按钮
With MyNot
.hIcon = Form1.Icon 托盘图标指针指向窗口的图标
.hwnd = Form1.hwnd 窗体指针
.szTip = "" 弹出提示字符串,删除时应为空
.uCallbackMessage = WM_USER + 100 对应程序定义的消息
.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE 图标标志
.uID = 1 图标识别符
.cbSize = Len(MyNot) 计算结构实例MyNot的长度
End With
hh = Shell_NotifyIcon(NIM_DELETE, MyNot) 删除该托盘图标
trayflag = False 托盘图标删除后trayflag为假
End Sub
Private Sub Command2_Click() 按下创建托盘图标按钮
Dim hh As Long
With MyNot
.hIcon = Form1.Icon
.hwnd = Form1.hwnd
.szTip = "托盘图标" & Chr(&H0)
.uCallbackMessage = WM_USER + 100
.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
.uID = 1
.cbSize = Len(MyNot)
End With
hh = Shell_NotifyIcon(NIM_ADD, MyNot) 添加一个托盘图标
trayflag = True 托盘图标添加后trayflag为真
End Sub
Private Sub Command3_Click() 按下修改托盘图标按钮
Dim hh As Long
Set P = LoadPicture("cd.ico") 导入一个新图标
With MyNot
.hIcon = P 将托盘图标改为新图标
.hwnd = Form1.hwnd
.szTip = "光盘图标" & Chr(&H0) 更改提示信息
.uCallbackMessage = WM_USER + 100
.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
.uID = 1
.cbSize = Len(MyNot)
End With
hh = Shell_NotifyIcon(NIM_MODIFY, MyNot) 修改托盘图标的某些特征
End Sub
Private Sub Command4_Click() 退出窗口按钮被按下
If trayflag = True Then Command1_Click 如果托盘图标仍在,模拟按下"删 除托盘图标"按钮
Unhook 退出消息循环
Unload Me 卸载窗体
End Sub
Private Sub exit_Click()
If trayflag = True Then Command1_Click 如果托盘图标仍在,模拟按下"删除托 盘图标"按钮
Unhook 退出消息循环
Unload Me 卸载窗体
End Sub
Private Sub Form_Load()
gHW = Me.hwnd 取得本窗体指针
hook 调用钩子函数,将自制消息处理函数钩入Windows的消息循环
End Sub
Private Sub hide_Click()
Form1.hide 隐藏窗口
End Sub
Private Sub show_Click()
Form1.show 显示窗口
End Sub
在VB中编译这个程序,点击创建托盘图标。则在任务栏的右下角出现在一图标。 将鼠标放在此图标上,则显示一条信息。点击右键,弹出菜单,可以选择相应的功能执 行的。当窗口隐藏时双击托盘图标可显示窗口。注意:在VB中使用函数指针将使程序变 得脆弱,在运用与其相关的函数及关键字时要多加小心。
来源:cww 作者:杨炳虎 责编:豆豆技术应用
- Visual Basic 9
- Visual Basic/VB入门教程
- Visual Basic界面/视图
- Visual Basic图像/多媒体
- Visual Basic数据库
- Visual Basic文件/目录/磁盘
- Visual Basic网络通信编程
- Visual Basic系统编程
- Visual Basic控件编程
- Visual Basic/VB源码下载