Seite 1 von 1

PopupMenu über WindowCallback abfragen?

Verfasst: 09.04.2006 20:03
von real
Hi,

wie kann ich in folgendem Code das PopupMenu abfragen? Ich möchte das aus verschiedenen Gründen gern per WindowCallback realisieren.

Code: Alles auswählen

Procedure HIWORD(Value)
  ProcedureReturn (Value >> 16) & $FFFF 
EndProcedure 

Procedure LOWORD(Value) 
  ProcedureReturn Value & $FFFF 
EndProcedure

Procedure HandleWindowEvent(windowid, msg, wparam, lparam)
  result = #PB_ProcessPureBasicEvents 
  Select msg 
    Case #WM_RBUTTONDOWN
      DisplayPopupMenu(0,WindowID(0))
  EndSelect
  ProcedureReturn result 
EndProcedure

OpenWindow(0,0,0,100,100,"test",#PB_Window_ScreenCentered)

CreatePopupMenu(0)
MenuItem(0,"Über")
MenuBar()
MenuItem(1,"Ende")
SetWindowCallback(@HandleWindowEvent(),0)

Repeat
  WindowEvent()
  Delay(10)
ForEver

Verfasst: 09.04.2006 20:59
von edel

Code: Alles auswählen

Procedure HandleWindowEvent(windowid, msg, wparam, lparam)
  result = #PB_ProcessPureBasicEvents
  Select msg
    Case #WM_COMMAND
      Select LOWORD(wparam)
        Case 0 : DEBUG "Über"
        Case 1 : DEBUG "Ende"
      EndSelect
    Case #WM_RBUTTONDOWN
      DisplayPopupMenu(0,windowid)
  EndSelect
  ProcedureReturn result
EndProcedure
Wobei 0 oder 1 die ID ist, die du bei MenuItem angegeben hast.

Verfasst: 09.04.2006 21:04
von ts-soft
Und wenn Du das Kontextmenü nur einem Control und nicht dem ganzen Fenster zuordnen möchtest, mit #WM_CONTEXTMENÜ
Passendes Snippet findeste im CodeArchiv