habe ich was verpast oder gibts #PB_EventType_RightClick nich im editorgadget?
wie kann ich den den event für nen rechtsklick bekommen?
#PB_EventType_RightClick im Editorgadget nich vorhanden???
- Hroudtwolf
- Beiträge: 1416
- Registriert: 30.10.2004 23:33
- Kontaktdaten:
Code: Alles auswählen
repeat
eventid.l=waitwindowevent ()
select eventid.l
case #wm_rbuttondown
Debug "Rechts gedrückt"
endselect
until eventid.l=#pb_event_closewindow
end
das is mir schon klar doch geht das so nich denn versuch das mal so:
Code: Alles auswählen
repeat
eventid.l=waitwindowevent ()
if eventid = #PB_Event_Gadget
GadgetID = EventGadgetID()
if GadgetID = #editorgadget
if eventid = #wm_rbuttondown
Debug "Rechts gedrückt"
endif
endif
endif
until eventid =#pb_event_closewindow
end
- Hroudtwolf
- Beiträge: 1416
- Registriert: 30.10.2004 23:33
- Kontaktdaten:
Hab ich auch nicht behauptet !
Code: Alles auswählen
repeat
eventid.l=waitwindowevent ()
Select EventID.l
case #wm_lbuttondown
if WindowMouseX()=>#gadget_x and WindowMouseY()=>#gadget_Y and WindowMouseX()=<#gadget_width and windowMouseY()=#gadget_height
debug "rechts geklickt"
Endif
EndSelect
until eventid =#pb_event_closewindow
end
Re: #PB_EventType_RightClick im Editorgadget nich vorhanden?
Das Grundprinzip:nicolaus hat geschrieben:wie kann ich den den event für nen rechtsklick bekommen?
Code: Alles auswählen
;
; by Danilo, 01.11.2004 - german forum
;
; - 02.06.2005, by Danilo
; changed DisplayPopupMenu(1, wParam ,lParam&$FFFF,(lParam>>16)&$FFFF)
; to DisplayPopupMenu(1,WindowID(0),lParam&$FFFF,(lParam>>16)&$FFFF)
;
If CreatePopupMenu(0)
MenuItem(1, "Cut")
MenuItem(2, "Copy")
MenuItem(3, "Paste")
MenuItem(4, "Quit")
Else
End ; Error
EndIf
If CreatePopupMenu(1)
MenuItem(1, "ButtonMenu 1")
MenuItem(2, "ButtonMenu 2")
Else
End ; Error
EndIf
Procedure WndProc(hWnd,Msg,wParam,lParam)
Select Msg
Case #WM_CONTEXTMENU
; Diese Message kommt automatisch von Windows
; bei Right-Click aufs Fenster und bei Shift+F10
;
; Bei Shift + F10 sind die MausKoordinaten in lParam
; beide -1, weshalb wir dafr die Koordinaten des
; Fensters (wParam) nehmen:
If lParam = $FFFFFFFF
GetWindowRect_(wParam,r.RECT)
lParam = (r\top<<16)|(r\left&$FFFF)
EndIf
;
; Display PopUp Menu:
If wParam = GadgetID(2)
; PopUp Menu fr den Button 2
DisplayPopupMenu(1,WindowID(0),lParam&$FFFF,(lParam>>16)&$FFFF)
Else
; PopUp Menu fr den Rest
DisplayPopupMenu(0,WindowID(0),lParam&$FFFF,(lParam>>16)&$FFFF)
EndIf
ProcedureReturn 0
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
If OpenWindow(0,0,0,200,200,#PB_Window_Titlebar|#PB_Window_ScreenCentered,"Press SHIFT+F10")
CreateGadgetList(WindowID())
ButtonGadget(1,10,10,100,20,"PopUp Main Menu")
ButtonGadget(2,10,35,100,20,"Right Click Me!")
SetWindowCallback(@WndProc())
Repeat
Select WaitWindowEvent()
Case #PB_EventGadget
Select EventGadgetID()
Case 1
GetCursorPos_(p.POINT)
SendMessage_(WindowID(0),#WM_CONTEXTMENU,WindowID(0),(p\y<<16)|(p\x&$FFFF))
EndSelect
Case #PB_EventMenu
Select EventMenuID()
Case 4 ; Quit
Break
EndSelect
EndSelect
ForEver
Else
End ; Error
EndIf
Code: Alles auswählen
If CreatePopupMenu(0)
MenuItem(100, "Cut")
MenuItem(101, "Copy")
MenuItem(102, "Paste")
Else
End ; Error
EndIf
Procedure WndProc(hWnd,Msg,wParam,lParam)
Select Msg
Case #WM_CONTEXTMENU
; Diese Message kommt automatisch von Windows
; bei Right-Click aufs Fenster und bei Shift+F10
;
; Bei Shift + F10 sind die MausKoordinaten in lParam
; beide -1, weshalb wir dafr die Koordinaten des
; Fensters (wParam) nehmen:
If lParam = $FFFFFFFF
GetWindowRect_(wParam,r.RECT)
lParam = (r\top<<16)|(r\left&$FFFF)
EndIf
;
; Display PopUp Menu:
If wParam = GadgetID(1)
; PopUp Menu fr EditorGadget
DisplayPopupMenu(0,WindowID(0),lParam&$FFFF,(lParam>>16)&$FFFF)
EndIf
ProcedureReturn 0
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
If OpenWindow(0,0,0,200,200,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Edit")
CreateGadgetList(WindowID())
EditorGadget(1,5,5,190,190)
SetWindowCallback(@WndProc())
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_EventMenu
Select EventMenuID()
Case 100 : Debug "Cut"
Case 101 : Debug "Copy"
Case 102 : Debug "Paste"
EndSelect
EndSelect
ForEver
Else
End ; Error
EndIf
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
@Danilo
danke dir erst mal.
habs jetzt selber auch hin bekommen wie du an folgendem code siehst:
gruß nico
danke dir erst mal.
habs jetzt selber auch hin bekommen wie du an folgendem code siehst:
Code: Alles auswählen
Global MousePos.POINT
Global rightmouse
rightmouse = #VK_RBUTTON+GetSystemMetrics_(#SM_SWAPBUTTON)
hwnd = OpenWindow(0,0,0,300,300,#PB_Window_ScreenCentered|#PB_Window_SystemMenu,"Editorgadget rechte Maustaste Test")
CreateGadgetList(WindowID())
EditorGadget(0,5,5,290,290)
For I = 0 To 20
AddGadgetItem(0,I,"testen der rechten Maustaste")
Next
If CreatePopupMenu(0)
MenuItem(1,"Clear all")
EndIf
Repeat
Event = WaitWindowEvent()
GetCursorPos_(MousePos)
If getasynckeystate_(rightmouse)
If EventWindowID() = 0 And WindowFromPoint_(MousePos\x,MousePos\y) = GadgetID(0)
DisplayPopupMenu(0,WindowID())
EndIf
EndIf
If Event = #PB_Event_Menu
menuid = EventMenuID()
If menuid = 1
ClearGadgetItemList(0)
EndIf
EndIf
Until Event = #PB_Event_CloseWindow