关于VB系统托盘的问题

来源:百度知道 编辑:UC知道 时间:2024/06/30 17:56:08
现在的问题是:可以点放小 缩放到托盘区,但不能还原。 有大侠能解决一下吗?

Const MAX_TOOLTIP As Integer = 64
Const NIF_ICON = &H2
Const NIF_MESSAGE = &H1
Const NIF_TIP = &H4
Const NIM_ADD = &H0
Const NIM_DELETE = &H2
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 SW_RESTORE = 9
Const SW_HIDE = 0
Private Type NOTIFYICONDATA
cbSize As Long
hwnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * MAX_TOOLTIP
End Type

Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias &

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 And Me.WindowState = 1 Then
Me.WindowState = 0 '程序回复到Normal状态
Me.Visible = True '从任务栏中清除图标
Call Shell_NotifyIcon(NIM_DELETE, nfIconData) '退出图标
End If
End Sub

应该是把那个MouseMove改成MouseDown单击应该可恢复了,你的代码好像在哪见过?
那么在上述过程中加一条语句
ShowWindow Me.hwnd,SW_RESTORE
试试