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

Menu 在带有子菜单的控件数组中加载新菜单控件,menu,vb6,submenu,Menu,Vb6,Submenu,我有一个包含两个子菜单的菜单Mnu1。此菜单项是控制数组的数组部分-我添加了Mnu1等于零的索引项。现在,当我使用Load语句在数组Mnu1中创建更多菜单时,会创建它们,但它们不包含Mnu1(0)中的子菜单。如何使用这些子菜单自动加载更多的Mnu1()实例 当前菜单结构为: Mnu ---Mnu1 (with index=0) -------Mnu1a -------Mnu1b ---Mnu2 ---Mnu3 使用Load(mnu(1))后 必需的菜单结构 Mnu ---M

我有一个包含两个子菜单的菜单
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)

-------Mnu1a

-------Mnu1b

---Mnu2

---Mnu3

不幸的是,你不能这样做。您有这样的想法,即您正在以某种方式复制Mnu1(0),但实际情况并非如此。相反,您只需将一个新的香草菜单控件添加到与Mnu1(0)相同的层次结构中,这样您就可以方便地通过索引引用菜单控件

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


唯一的其他方法是使用Windows API调用(GetMenu()、GetSubMenu()、InsertMenu())创建新的基础菜单项,然后对窗口进行子类化以接收WM_命令消息。

不幸的是,您无法做到这一点。您有这样的想法,即您正在以某种方式复制Mnu1(0),但实际情况并非如此。相反,您只需将一个新的香草菜单控件添加到与Mnu1(0)相同的层次结构中,这样您就可以方便地通过索引引用菜单控件

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


唯一的其他方法是使用Windows API调用(GetMenu()、GetSubMenu()、InsertMenu())创建新的基础菜单项,然后对窗口进行子类化以接收WM_命令消息。

感谢您的响应,我已决定使用其他内容。@user2265784您使用了什么?我在
Mnu
下创建了两个菜单
Mnu1a
Mnu1b
。然后在它们内部创建了
Mnu1
。感谢您的回复,我决定使用其他东西。@user2265784您使用了什么?我在
Mnu
下创建了两个菜单
Mnu1a
Mnu1b
。然后在它们内部创建
Mnu1
Mnu

---Mnu1     (with index=0)

-------Mnu1a

-------Mnu1b

---Mnu1     (with index=1)

-------Mnu1a

-------Mnu1b

---Mnu2

---Mnu3