Seite 1 von 1

Eventabfrage beim PanelGadget-Reiter [X]

Verfasst: 12.11.2007 22:32
von RSBasic
Guten Abend ihr lieben :)
ich habe wieder eine API-Frage.
Wie kann ich beim PanelGadget abfragen, ob jemand auf einem Reiter doppel geklickt hat?
Es ist normalerweise mit EventType und EventGadget nicht möglich, aber mit WinAPI schon.
Beispiel: PureBasic IDE..., da kann man mit der rechten Maustaste auf dem PanelGadget-Reiter raufklicken und dann kommt ein Kontexmenü.
Hat einer von euch eine Lösung? :D

Verfasst: 12.11.2007 23:04
von edel
#WM_LBUTTONDBLCLK und/oder #WM_RBUTTONDBLCLK abfangen
und #TCM_HITTEST senden bzw auswerten.

Verfasst: 12.11.2007 23:50
von Fluid Byte

Code: Alles auswählen

OpenWindow(0,0,0,320,240,"void",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
PanelGadget(0,0,0,320,240)
AddGadgetItem(0,-1,"untitled1")
AddGadgetItem(0,-1,"untitled1")
AddGadgetItem(0,-1,"untitled1")

Global lpPrevFunc

Procedure ChildSubProc(hWnd,uMsg,wParam,lParam)
    Select uMsg
        Case #WM_LBUTTONDBLCLK
		Debug "DOPPELCLICK"
    EndSelect
     
    ProcedureReturn CallWindowProc_(lpPrevFunc,hWnd,uMsg,wParam,lParam)
EndProcedure

lpPrevFunc = SetWindowLong_(GadgetID(0),#GWL_WNDPROC,@ChildSubProc())

While WaitWindowEvent() ! #PB_Event_CloseWindow : Wend

Verfasst: 13.11.2007 13:18
von RSBasic
@edel & @Fluid Byte
Vielen Dank für eure Hilfe :)

@Fluid Byte
Beispielcode funktioniert prima, danke :allright: