用VB编写托盘程序
http://tech.ddvip.com 2006年07月26日 社区交流
本文详细介绍用VB编写托盘程序
以下过程为消息循环处理
Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If hw = Form1.hwnd And uMsg = WM_USER+100 Then检测到鼠标点动托盘图标
Select Case lParam
Case WM_RBUTTONDOWN 鼠标右键按下
Form1.PopupMenu Form1.mainmenu 弹出菜单
Case WM_LBUTTONDBLCLK 鼠标左键双击
Form1.Show 显示窗口
Case Else
End Select
Else 调用缺省窗口指针
WindowProc = CallWindowProc(lpPrevWndProc, hw,uMsg, wParam, lParam)
End If
End Function
Public Sub hook()
将程序勾入消息环中
利用AddressOf取得消息处理函数WindowProc的指针,并将其传给SetWindowLong
lpPrevWndProc用来存储原窗口的指针
lpPrevWndProc = SetWindowLong(gHW, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Public Sub Unhook()
将程序从消息环退出。用原窗口的指针替换WindowProc函数的指针,即关闭子类、退 出消息循环
Dim temp As Long
temp = SetWindowLong(gHW, GWL_WNDPROC, lpPrevWndProc)
End Sub
2、在窗口form1加入一个主菜单mainmenu,设置为不可见。在加入一些子菜单如" 显示窗口"(名称为:show),"隐藏窗口"(名称为:hide),退出程序"(名称为:exit)。 在加入四个按钮Command1,Command2,Command3,Command。caption属性分别为:"删除托 盘图标","创建托盘图标","修改托盘图标","退出程序".
来源:cww 作者:杨炳虎 责编:豆豆技术应用