我有一个旧的视觉序言项目,我必须在运行时更改菜单的文本。
这是我为更改文本所做的:
menu_setText(Win, id_menu, NewMenuText)
这很好用,但是,当我想启用/禁用此菜单时,以下内容不起作用(意味着菜单项不会更改其状态):
menu_Enable(Win, id_menu, b_true)
经过一番搜索,我发现:
在 MS-Windows 下,资源标识符不能引用子菜单。如果子菜单的菜单条目需要启用、禁用、检查或更改文本。有必要使用menu_Enable、menu_Check和menu_SetText谓词的特殊版本,它们指定菜单条目的文本而不是常量。
menu_Enable(WinHandle, String, BOOLEAN)
menu_Check(WinHandle, String, BOOLEAN)
menu_SetText(WinHandle, String, NewString)
奇怪的是,在我的情况下,与需要文本本身menu_setText
的常量一起工作得很好。menu_Enable
(是的,我menu_Enable
使用菜单项的初始文本进行了测试,但是当文本更改时,一切都会中断)
我的问题来了:
当我知道菜单的 ID 但不知道其名称时,如何启用/禁用菜单?
如果不可能直接,当我知道菜单的 ID 时,如何获取菜单的当前名称?
万一这有帮助,这个项目是用 VIP52 打开和编译的(从 2001 年开始)。