XPraptor » 15.12.2003 (Пн) 12:03
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4
Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2
Public Const WM_RBUTTONDOWN = &H204
'Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_MOUSEMOVE = &H200
Public 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
Public NID As NOTIFYICONDATA
Public Res&
Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
'Добавление иконки в трэй
Public Sub AddTrayIcon(ByVal IDhWnd As Long, ByVal Icon As Long, ByVal Text As String)
On Error Resume Next
NID.szTip = Left$(Text, 63) & Chr$(0)
NID.uFlags = NIF_TIP + NIF_MESSAGE + NIF_ICON
NID.uID = IDhWnd
NID.cbSize = Len(NID)
NID.hWnd = IDhWnd
NID.uCallbackMessage = WM_RBUTTONDOWN
NID.hIcon = Icon
Res& = Shell_NotifyIcon(NIM_ADD, NID)
End Sub
'При выходе удаляешь свою иконку из трэя
Public Sub DeleteTrayIcon()
On Error Resume Next
NID.cbSize = Len(NID)
Res& = Shell_NotifyIcon(NIM_DELETE, NID)
End Sub
'Изменение иконки или всплывающего текста
Public Sub ItemModify(Icon As Long, Text As String)
On Error Resume Next
NID.uFlags = NIF_TIP + NIF_ICON
NID.cbSize = Len(NID)
NID.szTip = Left$(Text, 63) & Chr$(0)
NID.hIcon = Icon
Res& = Shell_NotifyIcon(NIM_MODIFY, NID)
End Sub
'Загружаешь иконку формы в трэй
Public Sub Load_Ico()
Dim wn As Long
Dim ic As Long
Dim tx As String
wn = frmICO_TIMER.hWnd
ic = frmICO_TIMER.Icon
tx = "Текст Всплывающей Подсказки"
AddTrayIcon wn, ic, tx
End Sub
Если руки кривые, то не надо ругать разработчиков.