menu - A menu handle |
DisableMenu disables a menu.
A disabled menu will not generate any menu events, and its appearance will be altered to indicate that it is unselectable. After calling DisableMenu, make sure you call UpdateWindowMenu to cause the change to take effect. See also: EnableMenu, MenuEnabled, CreateMenu. |
; Menus example based on one provided by Mag, added to documentation by Mark Tiffany
; ; This example is intended to demonstrate the following commands: ; CreateMenu, WindowMenu, UpdateWindowMenu, DisableMenu, EnableMenu, CheckMenu and UncheckMenu ; Firstly, create the window to which our menus will be attached WinHandle=CreateWindow("",0,0,400,200) ; Identify the 'root' menu for the window that we just created. All our menus must be attached to this menu=WindowMenu(WinHandle) ; Now create a whole bunch of menus and sub-items - first of all the FILE menu file=CreateMenu("File",0,menu) ; main menu CreateMenu "Open",1,file ; child menu CreateMenu "",0,file ; Use an empty string to generate separator bars CreateMenu "Quit",3,file ; another child menu ; Now the Edit menu edit=CreateMenu("&Edit",0,menu) ; Main menu with Alt Shortcut - Use & to specify the shortcut key CreateMenu "&Copy",4,edit ; Child menu with Alt Shortcut CreateMenu "&Paste",5,edit ; Another Child menu with Alt Shortcut CreateMenu "Cu&t",6,edit ; Another Child menu with Alt Shortcut ; Now a menu to demo disabled items future1=CreateMenu("Disabled Items",0,menu) ; Main menu Item7=CreateMenu("ITEM",7,future1) ; This menu we create with handle in order to control it. CreateMenu "Disable ITEM",8,future1 ; Will be used to disable ITEM CreateMenu "Enable ITEM",9,future1 ; Will be used to enable ITEM DisableMenu Item7 ; we wish to start with the ITEM menu item disabled. ; And a menu to demo checked items future2=CreateMenu("Check Items",0,menu) ; Main menu Item10=CreateMenu("ITEM",10,future2) ; This menu we create with handle in order to control it. CreateMenu "Check ITEM",11,future2;Check demo CreateMenu "Uncheck ITEM",12,future2;Check demo CheckMenu Item10 ; we wish to start with the ITEM menu item checked ; Finally, once all menus are set up / updated, we call UpdateWindowMenu to tell the OS about the menu UpdateWindowMenu WinHandle ; At last! We can now start up a simple application loop to control the demo application. Repeat ; Wait for an event to occur... id=WaitEvent() ; exit on a window close event If ID=$803 Then End ; handle a menu event If ID=$1001 Then EID=EventData() ; Event data contains the menu ID specified when creating the menu items Select EID Case 1 Notify "Open selected" Case 3 End Case 4 Notify "Copy selected" Case 5 Notify "Paste selected" Case 6 Notify "Cut selected" Case 7 Notify "ITEM selected" Case 8 ; disable the menu item and notify the OS of the update to the window menu DisableMenu Item7 UpdateWindowMenu WinHandle Case 9 ; enable the menu item and notify the OS of the update to the window menu EnableMenu Item7 UpdateWindowMenu WinHandle Case 10 Notify "ITEM selected" ; note that the item is NOT automatically checked / unchecked by selecting it Case 11 ; Check the menu item CheckMenu Item10 UpdateWindowMenu WinHandle Case 12 ; Uncheck the menu item UncheckMenu Item10 UpdateWindowMenu WinHandle End Select End If Forever End |