| |
|
|
- Página 1 - |
|
Nico Madysa | Yo habe una kleines Problema con TrayIcos y Kontextmenüs, welches Yo anhand des folgenden Quelltextes aufzeigen voluntad: KompilierenMarcaSeparación'Fenster und TrayIcon erzeugen
cls
var hIcon& = Create("hIcon","Profan")
TrayIcon("Add", %hWnd, 1, hIcon&, "TrayIcon 11")
var sw% = 0
'Hauptschleife
var e% = 0
whilenot e%
waitinput
if IsKey(27)
e% = 1
elseif (GetActiveWindow() = %hWnd) and (%MouseKey = 2)
'Rechtsklick ins Hauptfenster
'Abbruch des Menüs durch beliebigen Klick
Menu
elseif TrayIcon("Msg", 1) = $204
'Rechtsklick auf dem TrayIcon
'Abbruch des Menüs NUR durch Klick ins Hauptfenster
Menu
endif
wend
'Beenden
TrayIcon("Delete", %hWnd, 1)
DeleteObject hIcon&
end
proc Menu
CreateMenu
AppendMenu 100,"Fenster anzeigen/verbergen"
Separator
AppendMenu 999,"Beenden"
'Programm beenden
case TrackMenu() = 999 : e% = 1'Beenden
'Hauptfenster toggeln
case %MenuItem = 100 : sw% = ShowWindow(%hWnd,sw%)
ENDPROC
Wenn Yo el Kontextmenü con un Rechtsklick aufrufe, aber gegen todos Logik NICHTS auswählen voluntad, reicht lo normalerweise, irgendwohin a clic, así el Kontextmenü otra vez verschwindet.
Problema sin embargo: Si el Kontextmenü por el TrayIcon producido worden es, reicht para Verschwindenlassen kein beliebiger Clic, pero él muss en el Kontextmenü o Programmfenster tener lugar.
Das se para Ärgernis, si, como en Benutzung uno TrayIcons posible es, uno gar kein sichtbares Ventana disponible ha. Dann ha el Nutzer gar no otro Wahl, como irgendeinen Punkt auszuwählen.
Gibt lo dafür irgendeinen Workaround oder lässt lo gar dauerhaft beheben?
Liebe Grüße,
Nico |
|
|
| |
|
|
|
« Dieser Contribución wurde como Solución gekennzeichnet. » |
|
Andreas Miethe
| Probiers veces así KompilierenMarcaSeparación'Fenster und TrayIcon erzeugen
Windowstyle 26 + 512
CLS
Var hIcon& = Create("hIcon","Profan")
TrayIcon("Add", %hWnd, 1, hIcon&, "TrayIcon 11")
Var sw% = 0
'Hauptschleife
Var e% = 0
WhileNot e%
WaitInput
If IsKey(27) or (%Key = 2)
Ende()
ElseIf (GetActiveWindow() = %hWnd) and (%MouseKey = 2)
Menu()
ElseIf TrayIcon("Msg", 1) = $204
SetActiveWindow(%hWnd)
Menu()
Endif
EndWhile
End
Proc Ende
TrayIcon("Delete", %hWnd, 1)
DeleteObject hIcon&
End
Endproc
Proc Menu
CreateMenu
AppendMenu 100,"Fenster anzeigen/verbergen"
Separator
AppendMenu 999,"Beenden"
TrackMenu()
If %MenuItem = 100
Messagebox("Fenster verbergen","Hinweis",64)
ElseIf %MenuItem = 999
Ende()
EndIf
../funcion-referencias/XProfan/ENDPROC/'>ENDPROC
|
|
|
| Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 23.03.2012 ▲ |
|
|
|
|
|
RGH | ¡Hola, como el Función Trackmenu() nun veces wartet, a una Menüpunkt gewählt wurde, hay no einfachen Workaround. Von una Clic en el Blaue bekommt el XProfan-Programa nichts con.
Un praktische Solución wäre, una Menüpunkt "Abbruch" oder "Menü schließen" einzufügen, así el entscheidungsschwache User entonces auch ungefährdet el Menü otra vez verlassen kann.
Saludo Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 23.03.2012 ▲ |
|
|
|
|
Andreas Miethe
| Probiers veces así KompilierenMarcaSeparación'Fenster und TrayIcon erzeugen
Windowstyle 26 + 512
CLS
Var hIcon& = Create("hIcon","Profan")
TrayIcon("Add", %hWnd, 1, hIcon&, "TrayIcon 11")
Var sw% = 0
'Hauptschleife
Var e% = 0
WhileNot e%
WaitInput
If IsKey(27) or (%Key = 2)
Ende()
ElseIf (GetActiveWindow() = %hWnd) and (%MouseKey = 2)
Menu()
ElseIf TrayIcon("Msg", 1) = $204
SetActiveWindow(%hWnd)
Menu()
Endif
EndWhile
End
Proc Ende
TrayIcon("Delete", %hWnd, 1)
DeleteObject hIcon&
End
Endproc
Proc Menu
CreateMenu
AppendMenu 100,"Fenster anzeigen/verbergen"
Separator
AppendMenu 999,"Beenden"
TrackMenu()
If %MenuItem = 100
Messagebox("Fenster verbergen","Hinweis",64)
ElseIf %MenuItem = 999
Ende()
EndIf
../funcion-referencias/XProfan/ENDPROC/'>ENDPROC
|
|
|
| Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 23.03.2012 ▲ |
|
|
|
|
Nico Madysa | Andreas Miethe (23.03.12)
Probiers veces así KompilierenMarcaSeparación'Fenster und TrayIcon erzeugen
Windowstyle 26 + 512
CLS
Var hIcon& = Create("hIcon","Profan")
TrayIcon("Add", %hWnd, 1, hIcon&, "TrayIcon 11")
Var sw% = 0
'Hauptschleife
Var e% = 0
WhileNot e%
WaitInput
If IsKey(27) or (%Key = 2)
Ende()
ElseIf (GetActiveWindow() = %hWnd) and (%MouseKey = 2)
Menu()
ElseIf TrayIcon("Msg", 1) = $204
SetActiveWindow(%hWnd)
Menu()
Endif
EndWhile
End
Proc Ende
TrayIcon("Delete", %hWnd, 1)
DeleteObject hIcon&
End
Endproc
Proc Menu
CreateMenu
AppendMenu 100,"Fenster anzeigen/verbergen"
Separator
AppendMenu 999,"Beenden"
TrackMenu()
If %MenuItem = 100
Messagebox("Fenster verbergen","Hinweis",64)
ElseIf %MenuItem = 999
Ende()
EndIf
../funcion-referencias/XProfan/ENDPROC/'>ENDPROC
Un Línea reicht, genau así qué Yo me gewünscht! Gracias, Andreas! |
|
|
| |
|
|