用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    作者:杨炳虎    责编:豆豆技术应用

正在加载评论...