Public Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean 'Константы для добавления, удаления и модификации вашей икноки:
Public Const NIM_ADD = 0
Public Const NIM_MODIFY = 1
Public Const NIM_DELETE = 2
'Константы ответственные за события происходящие внутри границ иконки, расположенной в Traybar:
Public Const WM_MOUSEMOVE = &H200
Public Const NIF_MESSAGE = 1
Public Const NIF_ICON = 2
Public Const NIF_TIP = 4
'Константы ответственные за события поведения мышки происходящие внутри границ иконки, ' расположенной в Traybar:
':
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202
Public Const WM_LBUTTONDBLCLK = &H203
'Для правой клавиши мышки:
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205
Public Const WM_RBUTTONDBLCLK = &H206
'Для средней клавиши мышки:
Public Const WM_MBUTTONDOWN = &H207
Public Const WM_MBUTTONUP = &H208
Public Const WM_MBUTTONDBLCLK = &H209
'Объявляем переменную определяемую пользователем:
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
Теперь переключись на форму, и в ней(ФОРМЕ) впиши код:
'На форме в разделе General объявляем переменную определенную как тип пользователя:
Dim nid As NOTIFYICONDATA
Private Sub Command1_Click()
' Добавить иконку формы в Traybar
nid.cbSize = Len(nid)
nid.hWnd = Form1.hWnd
nid.uID = vbNull
nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
nid.uCallbackMessage = WM_MOUSEMOVE
nid.hIcon = Form1.Icon
'При наведении курсора на Иконку, выдвинется текст: "РАРАРРА":
nid.szTip = " РАРАРРА " & vbNullChar
Shell_NotifyIcon NIM_ADD, nid
End Sub
Private Sub Command2_Click()
nid.hIcon = Form1.Icon
nid.szTip = "New Icon" & vbNullChar
Shell_NotifyIcon NIM_MODIFY, nid
End Sub
Private Sub Command3_Click()
Shell_NotifyIcon NIM_DELETE, nid
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Объявляем переменные:
Dim msg As Long
Dim sFilter As String
msg = X / Screen.TwipsPerPixelX
Select Case msg
Case WM_LBUTTONDOWN
'Сюда ты можешь вставить код, который захчешь:
MsgBox "Нажата левая кнопка мыши(Нажата)"
Case WM_LBUTTONUP
'Сюда ты можешь вставить код, который захчешь:
MsgBox "Нажата левая кнопка мыши(Отжата)"
Case WM_LBUTTONDBLCLK
'Сюда ты можешь вставить код, который захчешь:
MsgBox "Ты кликнул 2 раза по ИКОНКЕ(Левой кнопкой)"
Case WM_RBUTTONDOWN
'Сюда ты можешь вставить код, который захчешь:
'Обычно это PopupMenu:
MsgBox "Нажата правая кнопка мыши(Нажата)"
Case WM_RBUTTONUP
'Сюда ты можешь вставить код, который захчешь:
MsgBox "Нажата левая кнопка мыши(Отжата)"
Case WM_RBUTTONDBLCLK
'Сюда ты можешь вставить код, который захчешь:
MsgBox "Ты кликнул 2 раза по ИКОНКЕ(Правой кнопкой)"
End Select
End Sub
Ответить
|