function AddSysTrayIcon(iNumberSysTray as integer, hwnd as hwnd, hIcon as Any ptr , sTooltip as string) as integer
Устанавливает иконку в системный трей. Если функция завершается успешно, возвращаемое значение не равно 0. Обратите внимание на пример. В нем показано, как на различных операционных системах обрабатываются события SysTray.
iNumberSysTray - Номер (идентификатор) системного трея (не должен совпадать с номерами\идентификаторами гаджетов , то есть должен быть оригинальным)
hwnd - Окно за которым закреплен идентификатор SysTray
hIcon - Хендл иконки. На Windows допускается тип HICON. На Linux допускается тип HBITMAP , то есть на Linux можно использовать изображение любого формата , поддерживаемого Load_Image
sTooltip - Подсказка для иконки системного трея
Windows , Linux
#Include "window9.bi"
Dim As HWND hWnd
Dim Shared As HMENU hmenu
hwnd=OpenWindow("",10,10,300,300)
hmenu=CreatePopMenu()
MenuItem(1001,hmenu,"Свернуть окно")
MenuItem(1002,hmenu,"Развернуть окно")
Dim As Any Ptr icon1
icon1 = Load_Icon("1.ico")
var st = AddSysTrayIcon(1,hwnd,icon1,"SYSTRAY приложение")
Do
 Var   ev=WaitEvent
 If ev=EventClose Then
  Deletesystrayicon(1)
  End
 EndIf
 #ifdef __fb_win32__
 If ev=eventRbdown Then ' on windows systray and popup menu work only with signal keydown
  If EventNumber = 1 Then
   DisplayPopupMenu(hmenu,GlobalMouseX,GlobalMouseY )
 #else
 If ev=eventRbUp Then
  If EventNumber = 1 Then ' on Linux systray and popup menu work only with signal keyUp 
   DisplayPopupMenu(hmenu,,, Cast(Any Ptr,st) )
 #endif
  EndIf
 EndIf
 If ev=EventMenu Then
  If EventNumber=1001 Then
   HideWindow(hwnd,1)
  ElseIf EventNumber=1002 Then
   HideWindow(hwnd,0)
  EndIf
 EndIf
Loop
![]()
Created with the Personal Edition of HelpNDoc: Easily create Web Help sites