请高手帮忙修改下着vb托盘代码

来源:百度知道 编辑:UC知道 时间:2024/05/21 07:44:28
Private Declare Function Shell_NotifyIcon Lib "shell32.dll" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
Const NIM_ADD = &H0
Const NIM_DELETE = &H2
Const NIF_ICON = &H2
Const NIF_MESSAGE = &H1
Const NIF_TIP = &H4
Const WM_MOUSEMOVE = &H200
Const WM_LBUTTONDBLCLK = &H203
Private Type NOTIFYICONDATA
cbSize As Long
hWnd As Long
uId As Long
uFlags As Long
uCallBackMessage As Long
hIcon As Long
szTip As String * 64
End Type
Dim tray As NOTIFYICONDATA

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim msg As Long
msg = X / 15
If msg = WM_LBUTTONDBLCLK Then
Me.WindowState = vbNormal
Me.Show
Shell_NotifyIcon NIM_DELETE, tray
End If
End Sub

Private Sub Form_Resize()
If WindowState = vbMinimized Then
tra

菜单自己设计吧
菜单--Menu
。。。显示--SHOW ‘子菜单
。。。退出--EXIT ‘子菜单
Private Sub EXIT_Click()
End
End Sub
Private Sub SHOW_Click()
Me.SHOW
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim msg As Long
msg = X / 15
If msg = 517 Then '517 右击时触发事件
Me.WindowState = vbNormal
PopupMenu Me.Menu '右键单击弹出菜单
Shell_NotifyIcon NIM_DELETE, tray
End If
End Sub
只要把msg = WM_LBUTTONDBLCLK 改为msg = 517 即可

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