程序自动隐藏到系统托盘的新问题????????
我用以下代码实现把程序自动隐藏到系统托盘,在没有加Toolbar控件时,程序隐藏后,鼠标左键双击图标可以重新显示程序;但我加上Toolbar控件,鼠标的左键对系统托盘的图标操作就没有反应了,右键可以。请教各位高手如何解决???????
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
Const NIM_ADD = 0
Const NIM_MODIFY = 1
Const NIM_DELETE = 2
Const NIF_MESSAGE = 1
Const NIF_ICON = 2
Const NIF_TIP = 4
Const WM_MOUSEMOVE = &H200
Const WM_LBUTTONDOWN = &H201
Const WM_LBUTTONUP = &H202
Const WM_LBUTTONDBLCLK = &H203
Const WM_RBUTTONDOWN = &H204
Const WM_RBUTTONUP = &H205
Const WM_RBUTTONDBLCLK = &H206
Const WM_MBUTTONDOWN = &H207
Const WM_MBUTTONUP = &H208
Const WM_MBUTTONDBLCLK = &H209
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function Shell_NotifyIconA Lib "SHELL32" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Integer
Private Function setNOTIFYICONDATA(hwnd As Long, ID As Long, Flags As Long, CallbackMessage As Long, Icon As Long, Tip As String) As NOTIFYICONDATA
Dim nidTemp As NOTIFYICONDATA
nidTemp.cbSize = Len(nidTemp)
nidTemp.hwnd = hwnd
nidTemp.uID = ID
nidTemp.uFlags = Flags
nidTemp.uCallbackMessage = CallbackMessage
nidTemp.hIcon = Icon
nidTemp.szTip = Tip & Chr$(0)
setNOTIFYICONDATA = nidTemp
End Function
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
If Not Visible Then
Select Case x \ Screen.TwipsPerPixelX
Case WM_MOUSEMOVE
MsgBox "MouseMove!"
Case WM_LBUTTONDOWN
MsgBox " Left MouseDown"
Case WM_LBUTTONUP
MsgBox "Left MouseUp"
Case WM_LBUTTONDBLCLK
MsgBox "Left DoubleClick"
Visible = True
WindowState = vbNormal
Dim hProcess As Long
GetWindowThreadProcessId hwnd, hProcess
AppActivate hProcess
Case WM_RBUTTONDOWN
MsgBox "rOK"
MsgBox "Right MouseDown"
Case WM_RBUTTONUP
MsgBox "Right MouseUp"
Case WM_RBUTTONDBLCLK
MsgBox "Right DoubleClick"
End Select
End If
End Sub
Private Sub Del()
Dim i As Integer
Dim nid As NOTIFYICONDATA
nid = setNOTIFYICONDATA(Form1.hwnd, vbNull, NIF_MESSAGE Or NIF_ICON Or NIF_TIP, vbNull, Form1.Icon, "")
i = Shell_NotifyIconA(NIM_DELETE, nid)
End Sub
Private Sub Add()
Dim i As Integer
Dim s As String
Dim nid As NOTIFYICONDATA
s = "ToolTipText Here!"
nid = setNOTIFYICONDATA(Me.hwnd, vbNull, NIF_MESSAGE Or NIF_ICON Or NIF_TIP, WM_MOUSEMOVE, Me.Icon, s)
i = Shell_NotifyIconA(NIM_ADD, nid)
WindowState = vbMinimized
Visible = False
End Sub
请教各位高手如何解决???????