本来是好好的,但我想要点窗口的X按钮时不关闭而是到托盘,可是加了下面的代码后,图标就会老消失了,我把大概的代码都贴出来,请各位看看什么原因:Option Explicit
Public LastState As Integer
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_SYSCOMMAND = &H112
Private Const SC_RESTORE = &HF120&Private Sub Form_Load()
If WindowState = vbMinimized Then
LastState = vbNormal
Else
LastState = WindowState
End If AddToTray Me, mnuTray
SetTrayTip "fz-L'tray "
End Sub'//下面的这段Form_QueryUnload就是我加的代码了
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode = 0 Then
'MsgBox "关闭"
Cancel = True
Me.Hide
If WindowState = vbMinimized Then
LastState = vbNormal
Else
LastState = WindowState
End If AddToTray Me, mnuTray
End If
End Sub
'Enable the correct tray menu items.
Private Sub Form_Resize()
Select Case WindowState
Case vbMinimized
mnuTrayMinimize.Enabled = False
mnuTrayRestore.Enabled = True
Case vbNormal
mnuTrayMinimize.Enabled = True
mnuTrayRestore.Enabled = True
End Select If WindowState <> vbMinimized Then _
LastState = WindowState
End Sub
' Important! Remove the tray icon.
Private Sub Form_Unload(Cancel As Integer)
RemoveFromTray
End Sub
Private Sub mnuFileExit_Click()
Unload Me
End SubPrivate Sub mnuTrayClose_Click()
Unload Me
End SubPrivate Sub mnuTrayMinimize_Click()
WindowState = vbMinimized
End SubPrivate Sub mnuTrayRestore_Click()
SendMessage hwnd, WM_SYSCOMMAND, _
SC_RESTORE, 0&
End Sub
Public LastState As Integer
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_SYSCOMMAND = &H112
Private Const SC_RESTORE = &HF120&Private Sub Form_Load()
If WindowState = vbMinimized Then
LastState = vbNormal
Else
LastState = WindowState
End If AddToTray Me, mnuTray
SetTrayTip "fz-L'tray "
End Sub'//下面的这段Form_QueryUnload就是我加的代码了
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode = 0 Then
'MsgBox "关闭"
Cancel = True
Me.Hide
If WindowState = vbMinimized Then
LastState = vbNormal
Else
LastState = WindowState
End If AddToTray Me, mnuTray
End If
End Sub
'Enable the correct tray menu items.
Private Sub Form_Resize()
Select Case WindowState
Case vbMinimized
mnuTrayMinimize.Enabled = False
mnuTrayRestore.Enabled = True
Case vbNormal
mnuTrayMinimize.Enabled = True
mnuTrayRestore.Enabled = True
End Select If WindowState <> vbMinimized Then _
LastState = WindowState
End Sub
' Important! Remove the tray icon.
Private Sub Form_Unload(Cancel As Integer)
RemoveFromTray
End Sub
Private Sub mnuFileExit_Click()
Unload Me
End SubPrivate Sub mnuTrayClose_Click()
Unload Me
End SubPrivate Sub mnuTrayMinimize_Click()
WindowState = vbMinimized
End SubPrivate Sub mnuTrayRestore_Click()
SendMessage hwnd, WM_SYSCOMMAND, _
SC_RESTORE, 0&
End Sub
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货