我有一个菜单Mnu1
,其中包含两个子菜单。此菜单项是控件数组的数组部分 - 我已将Mnu1
的索引条目添加为零。现在,当我使用Load语句在数组Mnu1
中创建更多菜单时,它们会被创建,但它们不包含Mnu1(0)
中的子菜单。如何使用这些子菜单自动加载更多Mnu1()
个实例?
当前菜单结构是:
Mnu
---Mnu1 (with index=0)
-------Mnu1a
-------Mnu1b
---Mnu2
---Mnu3
使用Load (mnu(1))
Mnu
---Mnu1 (with index=0)
-------Mnu1a
-------Mnu1b
---Mnu1 (with index=1)
---Mnu2
---Mnu3
必需的菜单结构
Mnu
---Mnu1 (with index=0)
-------Mnu1a
-------Mnu1b
---Mnu1 (with index=1)
-------Mnu1a
-------Mnu1b
---Mnu2
---Mnu3
答案 0 :(得分:1)
不幸的是,你不能这样做。你有想法你以某种方式复制Mnu1(0),但这不是正在发生的事情。相反,您只需将新的vanilla Menu控件添加到与Mnu1(0)相同的层次结构级别,这样您就可以通过索引引用菜单控件。
本机VB执行所需操作的方法是使用您可能使用的所有控件创建菜单结构(如果可能的话)。然后,您最初将当前不需要的菜单控件的Visible属性设置为False。如果要查看控件,请设置Visible = True。
执行此操作的唯一方法是使用Windows API调用(GetMenu(),GetSubMenu(),InsertMenu())来创建新的基础菜单项,然后将窗口子类化以接收WM_COMMAND消息。