Determine if Popup Menu was cancelled
Determine if Popup Menu was cancelled
I'm trying to determine if an item was selected in one of my popup menus or if the menu was hidden by clicking somewhere else. I've tried setting a variable to false before calling DisplayPopupMenu, setting it to true in my EventMenu routine, then checking its value after DisplayPopupMenu, but am having little luck.
Is this what you're after?
Code: Select all
Global flag
If CreatePopupMenu(0)
MenuItem(1, "Cut")
MenuItem(2, "Copy")
MenuItem(3, "Paste")
MenuBar()
OpenSubMenu("Options")
MenuItem(4, "Window...")
MenuItem(5, "Gadget...")
CloseSubMenu()
MenuBar()
MenuItem( 6, "Quit")
EndIf
;
; We just have to open a window and see when an event happen on the menu
;
If OpenWindow(0, 100, 100, 300, 260, "PureBasic - PopupMenu Example")
Repeat
Select WaitWindowEvent()
Case #WM_RBUTTONDOWN
DisplayPopupMenu(0, WindowID(0))
flag=1
Case #PB_Event_Menu
flag=0
Select EventMenu() ; To see which menu has been selected
Case 1 ; Cut
MessageRequester("PureBasic", "Cut", 0)
Case 2 ; Copy
MessageRequester("PureBasic", "Copy", 0)
Case 3 ; Paste
MessageRequester("PureBasic", "Paste", 0)
Case 6 ; Quit
Quit = 1
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
Default
If flag=1
flag=0
Debug "Popup cancelled!"
EndIf
EndSelect
Until Quit = 1
EndIf
End
I may look like a mule, but I'm not a complete ass.