在带子菜单的控件数组中加载新的Menu控件

时间:2013-04-10 11:21:35

标签: menu vb6 submenu

我有一个菜单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

1 个答案:

答案 0 :(得分:1)

不幸的是,你不能这样做。你有想法你以某种方式复制Mnu1(0),但这不是正在发生的事情。相反,您只需将新的vanilla Menu控件添加到与Mnu1(0)相同的层次结构级别,这样您就可以通过索引引用菜单控件。

本机VB执行所需操作的方法是使用您可能使用的所有控件创建菜单结构(如果可能的话)。然后,您最初将当前不需要的菜单控件的Visible属性设置为False。如果要查看控件,请设置Visible = True。

执行此操作的唯一方法是使用Windows API调用(GetMenu(),GetSubMenu(),InsertMenu())来创建新的基础菜单项,然后将窗口子类化以接收WM_COMMAND消息。