We can keep all windows active all time for good looking and the Window position too
Code: Select all
Procedure smCB()
ResizeWindow(1,WindowX(0)+100, WindowY(0)+30, 150, 40)
ResizeWindow(2,WindowX(0)+250, WindowY(0)+30, 150, 40)
EndProcedure
If OpenWindow(0, 0, 0, 500, 400, "PureBasic - Menu",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindow(1, WindowX(0)+100, WindowY(0)+30, 150, 40, "",#PB_Window_BorderLess,WindowID(0))
If CreateMenu(0, WindowID(1))
MenuTitle("File")
MenuItem( 1, "&Load...")
MenuItem( 2, "Save")
MenuItem( 3, "Save As...")
MenuBar()
OpenSubMenu("Recents")
MenuItem( 5, "Pure.png")
MenuItem( 6, "Basic.jpg")
OpenSubMenu("Even more !")
MenuItem( 12, "Yeah")
CloseSubMenu()
MenuItem( 13, "Rocks.tga")
CloseSubMenu()
MenuBar()
MenuItem( 7, "&Quit")
MenuTitle("Edition")
MenuItem( 8, "Cut")
MenuItem( 9, "Copy")
MenuItem(10, "Paste")
EndIf
OpenWindow(2, WindowX(0)+250, WindowY(0)+30, 150, 40, "",#PB_Window_BorderLess,WindowID(0))
If CreateMenu(1, WindowID(2))
MenuTitle("File")
MenuItem( 14, "&Load...")
MenuItem( 15, "Save")
MenuItem( 16, "Save As...")
MenuBar()
MenuTitle("Edition")
MenuItem( 17, "Cut")
MenuItem( 18, "Copy")
MenuItem( 19, "Paste")
EndIf
BindEvent(#PB_Event_MoveWindow,@smCB())
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
Select EventMenu() ; To see which menu has been selected
Case 11 ; About
MessageRequester("About", "Cool Menu example", 0)
Case 14 ; Check/Uncheck Me
Debug "14"
Case 19
Debug "19"
Default
MessageRequester("Info", "MenuItem: "+Str(EventMenu()), 0)
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit = 1
EndIf
End