Функция Shell_NotifyIcon

Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean

Платформа

Shell_NotifyIcon управляет значком, расположенным в области панели задач, обычно упоминаемой как "system tray"(рядом с часами). Функция добавляет новый значок, удаляет существующий значок, или изменяет(заменяет) существующий значок, принадлежащий программе запроса. Программы обычно используют значки в "system tray", когда они запускаются в фоновом режиме без окна; значок дает пользователю возможность обратиться к этой программе.

Все сообщения этого значка посылаются к его окну для обработки.Смотри структуру NOTIFYICONDATA для дополнительной информации. Стандартное поведение Shell_NotifyIcon использует следующие сообщения: WM_MOUSEMOVE, WM_LBUTTONDOWN, WM_LBUTTONUP, WM_RBUTTONDOWN, WM_RBUTTONUP и т.д.

Возвращаемое значение
В случае ошибки функция возвращает 0 или значение,отличное от нуля в успешном случае.

Параметры

dwMessage
Флажки,определяющие следующие действия:
NIM_ADD
Добавляет значок,описанный в pnid в system tray.
NIM_DELETE
Удаляет значок,описанный в pnid из system tray.
NIM_MODIFY
Изменяет значок,описанный в pnid.
NIM_SETFOCUS
Windows 2000: Возвращает фокус в system tray. Это должно быть сделано после завершения операций интерфейса пользователя, связанных со значком.
NIM_SETVERSION
Windows 2000: Использование члена структуры uVersion как pnid определяет поведение панели задач. Эти две опции - специфичны для Windows 2000. Обратите внимание, что это руководство не объясняет, как использовать поведение, представленное Windows 2000.
pnid
Обеспечивает информацию идентификации и параметры настройки для значка,необходимую для значения dwMessage.

Константы

Const NIM_ADD = &H0
Const NIM_DELETE = &H2
Const NIM_MODIFY = &H1
Const NIM_SETFOCUS = &H4
Const NIM_SETVERSION = &H8

Пример

Примечание:Чтобы использовать этот пример, Вы должны сначала создать маленькое меню на Form1. Создайте меню, называемое mnuTrayIconPopup. Затем создайте два пункта меню под ним: mnuAbout и mnuExit.

' Помещаем значок к системным часам при запуске программы.
'При щелчке правой кнопкой мыши появляется контекстное
' меню.Значок удаляется при закрытии программы
'вставляем переменную в General Declarations
Dim t As NOTIFYICONDATA

Private Sub Form_Load()
t.cbSize = Len(t)
t.hWnd = Me.pichook.hWnd
t.uId = 1&
'устанавливаем флаги
t.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
t.ucallbackMessage = WM_MOUSEMOVE
'иконка для программы
t.hIcon = Me.Icon
'всплыващая подсказка
t.szTip = "Привет!" & Chr$(0)
Shell_NotifyIcon NIM_ADD, t
Me.Hide
App.TaskVisible = False

End Sub


Private Sub mnuAbout_Click()
MsgBox "Посетите http://members.xoom.com/wwwind"
End Sub

Private Sub mnuExit_Click()
t.cbSize = Len(t)
t.hWnd = pichook.hWnd
t.uId = 1&
Shell_NotifyIcon NIM_DELETE, t
End

End Sub

Private Sub pichook_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static rec As Boolean, msg As Long
msg = X / Screen.TwipsPerPixelX
If rec = False Then
rec = True
Select Case msg
Case WM_LBUTTONDBLCLK:
Case WM_LBUTTONDOWN:
Case WM_LBUTTONUP:
Case WM_RBUTTONDBLCLK:
Case WM_RBUTTONDOWN:
Case WM_RBUTTONUP:
Me.PopupMenu mnuTrayIconPopup
End Select
rec = False
End If

End Sub

Категория
Оболочка

В начало.