| |
|
|
|
Source wurde al 15.07.2007 de el MMJ-Quellcodesammlung (Dietmar Horn) en el Babyklappe en XProfan.Com abgelegt:
Tray-Icon redactar y abfragen (linke y rechte Botón del ratón)
#######################
Thema : Tray-Icon
#######################
Andreas Miethe
August 2003
#######################
$H windows.ph
$H structs.ph
$H messages.ph
$H shellapi.ph
DEF &WM_SHELLNOTIFY ~WM_USER + 5 shell notify mensaje
DEF &uID 7777
Struct Punto = ~Punto
Struct Note = ~NOTIFYICONDATA
Declarar Punto#,TB_CREATED&
Declarar Ende&,Note#,Tip$
SetTrueColor 1
Ventana %maxx,0 - 640,480Ventana neben el Bildschirm
CLS ~GetSysColor(~COLOR_BTNFACE)
~ShowWindow(%hwnd,~SW_HIDE)Ventana verbergen
~SetWindowPos(%hwnd,0,0,0,640,480,O(~SWP_NOREDRAW,~SWP_NOACTIVATE))neue Position
Dim Note#,Note
Claro Note#
Note#.cbSize& = sizeof(Note#)
Note#.hWnd& = %hwnd
Note#.uID& = &uID
Note#.hIcon& = ~LoadIcon(%hInstance,A)
Note#.uFlags& = Or(Or(~NIF_ICON,~NIF_TIP),~NIF_MESSAGE)
Note#.uCallbackMessage& = &WM_SHELLNOTIFY
Note#.szTip# = Tray-Icon Demo
~Shell_NotifyIcon(~NIM_ADD, Note#)
TB_CREATED& = ~RegisterWindowMessage(IconCreated)
Mensajes del usuario &WM_SHELLNOTIFY,TB_CREATED&,~WM_CLOSE
Sinestar encargado Ende&
Waitinput
If ~IsIconic(%hwnd)Ventana minimiert ??
~ShowWindow(%hwnd,~SW_HIDE)
Endif
If %UMessage = ~WM_CLOSE
~Shell_NotifyIcon(~NIM_DELETE,Note#)
Ende& = 1
Endif
If %UMessage = TB_CREATED&Explorer-Crash. Icon neu invertir
~Shell_NotifyIcon(~NIM_ADD,Note#)
Endif
If %UMessage = &WM_SHELLNOTIFY
If &ULParam = ~WM_RBUTTONDOWNrechter Mausbutton
~SetForegroundWindow(%hWnd)
Dim Punto#,Punto
CreateMenu
AppendMenu 100,Ventana verbergen
AppendMenu 101,Ventana zeigen
Separador
AppendMenu 102,Ende
~GetCursorPos(Punto#)
~MapWindowPoints(%Desktop,%hwnd,Punto#,1)
Trackmenu Punto#.x&,Punto#.y&
Disponer Punto#
Endif
If &ULParam = ~WM_LBUTTONDOWNlinker Mausbutton
~SetForegroundWindow(%hWnd)
Dim Punto#,Punto
CreateMenu
AppendMenu 200,Linker Button 1
AppendMenu 201,Linker Button 2
Separador
AppendMenu 202,Linker Button 3
~GetCursorPos(Punto#)
~MapWindowPoints(%Desktop,%hwnd,Punto#,1)
Trackmenu Punto#.x&,Punto#.y&
Disponer Punto#
Endif
Endif
If MenuItem(100)
~ShowWindow(%hwnd,~SW_HIDE)
ElseIf MenuItem(101)
SendMessage(%hwnd,~WM_SYSCOMMAND,~SC_RESTORE,0)
ElseIf MenuItem(102)
~Shell_NotifyIcon(~NIM_DELETE,Note#)
Ende& = 1
Endif
Wend
|
|
|
| |
|
|