Работа с треем

'+-------------------------------------+
'|        Работа с Tray'ем             |
'|       универсальный модуль          |
'| Большой сенкс добрым ФИДОшникам за  |
'|    предоставление этого модуля      |
'+-------------------------------------+


'всякие константы
Public Const NIF_MESSAGE = &H1

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


'структурка
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
Private NID As NOTIFYICONDATA

Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias _
 "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) _
 As Long


'Добавление иконки в Tray
Public Sub AddTrayIcon(IDhWnd As Long, Icon As Long, Text As String)
    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

'Удаление иконки из Tray
Public Sub DeleteTrayIcon()
    NID.cbSize = Len(NID)
    Res& = Shell_NotifyIcon(NIM_DELETE, NID)
End Sub

'Изменение иконки и ToolTip в Tray
Public Sub ItemModify(Icon As Long, Text As String)
    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

 

Hosted by uCoz