ich hab mir mit hilfe des Forums/Archivs ne Eventabfrage zusammen gezimmert mit der ich die Rechte Maustaste auf Gadgets abfangen kann.
Das klappt im Testprog ganz gut solange ich nach ermitteln des Gadgets ne Testmessagebox aufrufe. In meinem eigentlichen Prog will ich das einfach nichts passiert - also daß das Standardkontextmenü für Stringgadgets nicht erscheint. Lasse ich Messagebox einfach weg kommt es dennoch zur Anzeige. Wer hat ne Idee dazu?
Einige Kopfzerbrechen machte mir auch das verdammte Frame3DGadget. Wird es vor den eigentlichen Gadgets die man abfragen will erzeugt dann "schluckt" es anscheinend die Events. Seltsam ist auch daß ich eigentlich dachte FrameGadgets wären wie in VB auch Container. Damit man mit einem Hide auf ein Frame mit Gadgets drin alle auf einmal "hiden" könnte.
Na ja PB is halt net VB *ggg
in diesem Sinne
Euer
FGK
Code: Alles auswählen
Procedure WindowUnderCursor(hwnd)
GetCursorPos_(cursor.POINT)
MapWindowPoints_(0,hwnd,cursor,1)
ProcedureReturn ChildWindowFromPoint_(hwnd,cursor\x,cursor\y)
EndProcedure
Procedure GetPanelDisplayWindowID(Gadget,item); Return the Display-WindowID of a Panel-Item
tc_item.TC_ITEM
tc_item\Mask=#TCIF_PARAM
SendMessage_(GadgetID(Gadget),#TCM_GETITEM,item,tc_item)
ProcedureReturn tc_item\lParam
EndProcedure
OpenWindow(0,100,100,500,200, #PB_Window_MinimizeGadget, "Check right click")
CreateGadgetList(WindowID())
PanelGadget(99,0,0,500,200)
AddGadgetItem(99,1,"N0")
StringGadget(1, 10, 20, 60, 24, "String")
Frame3DGadget(98,0,0,200,100,"Test")
AddGadgetItem(99,1,"N1")
TextGadget(2, 100, 10, 60, 24, "Text")
AddGadgetItem(99,1,"N2")
ButtonGadget(3, 10, 40, 60, 24, "Button")
CloseGadgetList()
;HideGadget(98,1)
Repeat
Select WaitWindowEvent()
Case #WM_RBUTTONDOWN ; any click anywhere in the window
Select WindowUnderCursor(GetPanelDisplayWindowID(99,GetGadgetState(99)))
Case GadgetID(1) : MessageRequester("INFO","StringGadget",0)
Case GadgetID(2) : MessageRequester("INFO","TextGadget",0)
Case GadgetID(3) : MessageRequester("INFO","ButtonGadget",0)
Case WindowID(0) : MessageRequester("INFO","Main Window",0)
EndSelect
Case #PB_EventCloseWindow
End
EndSelect
ForEver