| |
|
|
| RGH
et ici pour alle Mitleser, qui savons voulons, comment on überhaupt Anwendungen pour den Systemtray de Windows dans XProfan programmiert, un komplettes Beispiellisting avec TrayIcon-menu et Bildern dans demselben: Déclarer Hicon&,Ende%,Show%
Déclarer Checkmerker%,Menuhandle&
Déclarer hbmChecked&,hbmUnchecked&
DEF SetMenuItemBitmaps(5) !USER32,SetMenuItemBitmaps
Proc Ico2SizedBmp
Paramètres Icon&, dx&, dy&
Weiße temporäre Bitmap dans Taille 32 * 32 erzeugen
Var TempBmp& = Créer(hNewPic, 32, 32, RGB(255,255,255))
sur cet Bitmap cela Icon zeichnen
Début de peinture TempBmp&
DrawIcon Icon&, 0, 0
EndPaint
Weiße Bitmap dans Taille dx& * dy& erzeugen
Var IBmp& = Créer(hNewPic, dx&, dy&, RGB(255,255,255))
sur cet Bitmap qui temporäre Bitmap verkleinert zeichnen
Début de peinture IBmp&
DrawSizedPic TempBmp&, 0, 0 - dx&, dy&; 0
EndPaint
DeleteObject TempBmp&
Retour IBmp&
ENDPROC
Proc Menue
CreateMenu
AppendMenu 101, &Info
AppendMenu 102, &deaktiviert
SetMenuItemBitmaps(&hMenu,102,$10,hbmChecked&,hbmUnChecked&) Menu-Grafik ändern...
AppendMenu 106, Hauptfenster &sichtbar
SetMenuItemBitmaps(&hMenu,106,$10,hbmChecked&,hbmUnChecked&) Menu-Grafik ändern...
AppendMenu 104, -
AppendMenu 103, &finissons
CheckMenu 106, Show%
CheckMenu 102, Checkmerker%
Retour @TrackMenu()
ENDPROC
Windowstyle 26 + 512
Titre de la fenêtre TrayIcon_Test
Fenêtre 0,0-640,480
@ShowWindow(%hWnd,0)
Hicon& = @create(hIcon,Profan)
hbmChecked& = Ico2SizedBmp(@create(hIcon, A),13,13)
hbmUnChecked& = Ico2SizedBmp(@create(hIcon, arbre),13,13)
@TrayIcon(Ajouter, %hWnd, 1, hIcon&, TrayIcon 11)
Whilenot Ende%
Waitinput
Si @TrayIcon(Msg, 1) = $203 Double-cliquez sur à gauche
Ende%=1
Elseif @TrayIcon(Msg, 1) = $204 Rechter Mausbutton gedrückt
@SetActiveWindow(%hWnd)
Menue()
Si (%MenuItem = 102)
Checkmerker% = @Not(Checkmerker%) Zustandsänderung merken...
Si Checkmerker% = 0
Hicon& = @create(hIcon, A)
@TrayIcon(SetIcon, %hWnd, 1, hIcon&)
D'autre
Hicon& = @create(hIcon, arbre)
@TrayIcon(SetIcon, %hWnd, 1, hIcon&)
EndIf
Setmenuitem 0
ElseIf (%MenuItem = 101)
@Messagebox(Programmiert dans XProfan 11,Hinweis,64)
Setmenuitem 0
ElseIf (%MenuItem = 103)
Ende%=1
ElseIf (%MenuItem = 106)
Show% = @Not(Show%)
@Showwindow(%hWnd,Show%)
Setmenuitem 0
EndIf
Endif
Endwhile
@TrayIcon(Delete, %hWnd, 1)
Fin
Salut Roland |
|
|
| |
|
|