Disable "SubMenu()"?
Posted: Mon Dec 31, 2012 7:43 pm
Is there a way to disable a submenu item?
This is for a windows app, if it matters.
This is for a windows app, if it matters.
http://www.purebasic.com
http://forums.purebasic.com/english/
Yes, that would be for a menuitem(), not a submenu()Droopy wrote:DisableMenuItem ?
Code: Select all
If OpenWindow(0, 200, 200, 220, 100, "SubMenu Example")
If CreateMenu(0, WindowID(0))
MenuTitle("Project")
MenuItem(1, "Open")
MenuItem(2, "Close")
MenuBar()
OpenSubMenu("Recent files") ; begin sub-menu
MenuItem( 3, "C:\Autoexec.bat")
MenuItem( 4, "D:\Test.txt")
CloseSubMenu() ; end sub-menu
EndIf
DisableMenuItem(0, 4, 1) ; disable the second submenu item ("D:\Test.txt")
Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
Code: Select all
if OpenWindow(0, 200, 200, 220, 100, "SubMenu Example")
if CreateMenu(0, WindowID(0))
MenuTitle("Project")
MenuItem(1, "Open")
MenuItem(2, "Close")
MenuBar()
handle = OpenSubMenu("Recent files") ; begin sub-menu
MenuItem( 3, "C:\Autoexec.bat")
MenuItem( 4, "D:\Test.txt")
CloseSubMenu() ; end sub-menu
endif
EnableMenuItem_(MenuID(0), handle, #MF_BYCOMMAND | #MF_GRAYED)
repeat
until WaitWindowEvent()=#PB_Event_CloseWindow
endif
Great! Thank you.Shield wrote:Code: Select all
EnableMenuItem_(MenuID(0), handle, #MF_BYCOMMAND | #MF_GRAYED)
Code: Select all
If OpenWindow(0, 200, 200, 220, 100, "SubMenu Example")
If CreateMenu(0, WindowID(0))
MenuTitle("Project")
MenuItem(1, "Open")
MenuItem(2, "Close")
MenuBar()
handle = OpenSubMenu("Recent files") ; begin sub-menu
MenuItem( 3, "C:\Autoexec.bat")
MenuItem( 4, "D:\Test.txt")
CloseSubMenu() ; end sub-menu
EndIf
DisableMenuItem(0, handle, #True)
Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
Even slicker!nco2k wrote:Code: Select all
handle = OpenSubMenu("Recent files") ; begin sub-menu DisableMenuItem(0, handle, #True)
Code: Select all
If OpenWindow(0, 200, 200, 220, 100, "SubMenu Example")
popup = CreatePopupImageMenu(#PB_Any)
If popup
MenuTitle("Project")
MenuItem(1, "Open")
MenuItem(2, "Close")
MenuBar()
sub = OpenSubMenu("Recent files") ; Want this disabled.
MenuItem( 3, "C:\Autoexec.bat")
MenuItem( 4, "D:\Test.txt")
CloseSubMenu()
EndIf
DisableMenuItem(popup, sub, 1)
DisplayPopupMenu(popup, WindowID(0), WindowX(0) + 20, WindowY(0) + 40)
Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
Code: Select all
EnableMenuItem_(MenuID(popup), handle, #MF_BYCOMMAND | #MF_GRAYED)