- Left click to process
Code: Select all
#TPM_RECURSE = $0001
#TPM_NONOTIFY = $0080
#TPM_RETURNCMD = $0100
Procedure LeftClick ()
In.INPUT
In\type = #INPUT_MOUSE
In\mi\dwFlags = #MOUSEEVENTF_LEFTDOWN
SendInput_(1,@In,SizeOf(INPUT))
In\mi\dwFlags = #MOUSEEVENTF_LEFTUP
SendInput_(1,@In,SizeOf(INPUT))
EndProcedure
Procedure WinCallback(hwnd, uMsg, wParam, lParam)
Result = #PB_ProcessPureBasicEvents
Select uMsg
Case #WM_MENURBUTTONUP
GetCursorPos_(p.POINT)
TrackPopupMenuEx_(MenuID(1),#TPM_RECURSE,p\x,p\y,WindowID(0),0)
SetCursorPos_(WindowX(0)+30,WindowY(0)+10)
LeftClick()
SetCursorPos_(p\x,p\y)
EndSelect
ProcedureReturn result
EndProcedure
If OpenWindow(0,0,0,600,400, "Popup-Menu Example",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CreateMenu(0, WindowID(0))
MenuTitle("Project")
MenuItem(1, "Open" +Chr(9)+"Ctrl+O")
MenuItem(2, "Save" +Chr(9)+"Ctrl+S")
MenuItem(3, "Save as"+Chr(9)+"Ctrl+A")
MenuItem(4, "Close" +Chr(9)+"Ctrl+C")
CreatePopupMenu(1)
MenuItem(5, "Pop # 1 Open")
MenuItem(6, "Pop # 1 End")
SetWindowCallback(@WinCallback())
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Menu
Select EventMenu()
Case 1 : Debug " Item # 1"
Case 5 : Debug "PopMenu # 1: Open"
Case 6 : Debug " PopMenu # 1: End"
EndSelect
EndSelect
Until Quit = 1
EndIf