| |
|
|
Rolf Koch | Huhu Aus ici bereits gepostetem Grund nutze je une vieille Routine et pas qui fertigen Sachen des Trayicons dans einem projet. und dir tout autor, qui es jusqu'à autrefois ging, per Message trop überprüfen, si qui souris sur dem Trayicon verweilt. comment geschrieben: Ging es früher toujours, là qui UserMessage (siehe Code) 1234 toujours ensuite eintrat, si on avec dem Mauszeiger sur dem Icon verweilte et cet wieder sur 0 était, sobald on es verließ. voyez son une faute dans Bezug sur cela Problem? ici un vite extrahierter Code um cela Problem darzustellen.
Def LoadIcon(2) !"User32","LoadIconA"
DEF ExtractIcon(3) !"SHELL32","ExtractIconA"
Def GetClassLong(2) !"User32","GetClassLongA"
Def GetCursorPos(1) !"User32","GetCursorPos"
Def ShellNotify(2) !"SHELL32","Shell_NotifyIconA"
Def SetForegroundWindow(1) !"User32","SetForegroundWindow"
Def GetDoubleClickTime(0) !"User32","GetDoubleClickTime"
Def Sleep2(1) !"KERNEL32","Sleep"
Déclarer NIDATA#,Pos#,ic2#,ende%,icondll&,test4&
dim nidata#,100
Faible ic2#,100
Proc SetNewTip
Paramètres t$
String NIDATA#,24=t $+Chr$(0)
ShellNotify(1,NIDATA#)'NIM_Modify
ENDPROC
Proc SetNewIcon
Paramètres nom$
declare icon_handle&
String ic2#,0=nom$
icon_handle& = loadicon(icondll&,ic2#)' Handle des Icônes
Long NIDATA#,20 = icon_handle&
ShellNotify(1,NIDATA#)'NIM_Modify
ENDPROC
Proc SetIcon
Paramètres nom$
declare icon_handle&
String ic2#,0=nom$
icon_handle& = ExtractIcon(%HINSTANCE,ic2#,0)
'icon_handle&=loadicon(0,ic2#)' Handle des Icônes
Long NIDATA#,20 = icon_handle&
ShellNotify(1,NIDATA#)'NIM_Modify
ENDPROC
Proc CreateTrayIcon
Long NIDATA#, 0 = 88' Taille qui Struktur
Long NIDATA#, 4 = %hwnd' Handle des Profanfensters
Long NIDATA#, 8 = 7777' unwichtig,ergibt & WParam chez Abfrage,peux aussi 0 son
Long NIDATA#, 12= 7' NIF_MESSAGE or NIF_ICON or NIF_TIP;
Long NIDATA#, 16 = 1234' benutzerdef. Message, doit größer comme 1024 (wm_user) son
Long NIDATA#, 20 = loadicon(icondll&,ic2#)'LoadIcon(0,0) ' Handle eines Systemicons
String NIDATA#, 24 = »+Chr$(0)' Tooltip, max. 63 marque
ShellNotify(0,NIDATA#)' NIM_ADD
ENDPROC
proc add_tryicon
parameters text$,icon$
Fenêtre Style $78
CreateTrayIcon
SetNewIcon icon$
endproc
proc del_tryicon
ShellNotify(2,NIDATA#)' NIM_DELETE
endproc
usermessages 1234
Fenêtre 0,0 - 800,800
Windowtitle "Rechtsklick sur Icon zum finissons!"
add_tryicon "Test","A"
SETICON $WinPath+"\\explorer.exe"
settimer 150
WhileNot Ende%
waitinput
si %wmtimer
imprimer %umessage
'cet Umessage sollte seulement 1234 chez Mouseover Icon son. Ansonsten 0!
cas &ulparam=516:Fin
endif
Endwhile
del_tryicon
|
|
|
| |
|
|
|
Rolf Koch | Zum Hinweis: chez einer Problemsuche avec iF ist aufgefallen, qui un Minuteur comment ici dans dem le cas qui Umessages scheinbar wegkickt. Mussten uns alors quoi entier d'autre ausdenken. pourquoi qui Messages chez %WMTIMER comment ici dans dem Beispiel pas arriver, pourrait peut-être Roland klären peut, ou bien? |
|
|
| |
|
|