在系统托盘中显示

‘建立项目(Project),创制如图级联菜单,分别命名为mnuMain、mnuWork、mnuExit。

Option Explicit
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 tnid As NOTIFYICONDATA
Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const NIM_MOUSEMOVE = &H200
Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4
Private Const DOUBLE_CLICK_LEFT = &H203
Private Const BUTTON_LEFT_DOWN = &H201
Private Const BUTTON_LEFT_UP = &H202
Private Const DOUBLE_CLICK_RIGHT = &H206
Private Const BUTTON_RIGHT_DOWN = &H204
Private Const BUTTON_RIGHT_UP = &H205
Private Declare Function Shell_NotifyIcon Lib “shell32” Alias “Shell_NotifyIconA” (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean

Private Sub Form_Load()
tnid.cbSize = Len(tnid)
tnid.hWnd = Me.hWnd
tnid.uID = 1&
tnid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
tnid.uCallbackMessage = NIM_MOUSEMOVE
tnid.hIcon = Me.Icon
tnid.szTip = “系统托盘样例” & Chr$(0)
Shell_NotifyIcon NIM_ADD, tnid
Me.Hide
App.TaskVisible = False
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
‘为相应事件添加对应代码
Dim MSG As Long
MSG = X / Screen.TwipsPerPixelX ‘512
Select Case MSG
Case DOUBLE_CLICK_LEFT ‘515

Case BUTTON_LEFT_DOWN ‘513
OpenForm Me
Case BUTTON_LEFT_UP ‘514

Case DOUBLE_CLICK_RIGHT ‘518

Case BUTTON_RIGHT_DOWN ‘516

Case BUTTON_RIGHT_UP ‘517
PopupMenu mnuMain, , , , mnuWork
End Select
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
EndApp
End Sub

Private Sub Form_Resize()
If Me.WindowState = 1 Then
Me.Hide
App.TaskVisible = False
End If
End Sub

Private Sub mnuExit_Click()
EndApp
End Sub

Private Sub EndApp()
Unload Me
tnid.cbSize = Len(tnid)
tnid.hWnd = Me.hWnd
tnid.uID = 1&
Shell_NotifyIcon NIM_DELETE, tnid
End
End Sub

Private Sub OpenForm(ByVal frmShow As Form)
frmShow.Show
App.TaskVisible = True
End Sub

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注