2013-04-10 21 views
1

我有一個菜單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

不幸後,你就不能做到這一點。你有這樣的想法,即你在複製Mnu1(0),但這不是發生的事情。相反,您只需將一個新的vanilla Menu控件添加到與Mnu1(0)相同的層次結構中,只是爲了方便您通過索引來引用菜單控件。

做你想做的事情的本地VB方式是使用你將要使用的所有控件創建菜單結構,如果可能的話。然後,您最初將當前不需要的菜單控件的Visible屬性設置爲False。當你想看到你的控制,設置Visible = True。

這樣做的唯一方法是使用Windows API調用(GetMenu(),GetSubMenu(),InsertMenu())創建新的底層菜單項,然後子窗口接收WM_COMMAND消息。

+0

感謝您的迴應,我決定使用別的東西。 – user2265784 2013-04-10 13:38:04

+0

@ user2265784你使用了什麼? – 2013-04-10 22:43:35

+0

我在'Mnu'下創建了兩個菜單'Mnu1a'和'Mnu1b'。然後在裏面創建'Mnu1'。 – user2265784 2013-04-11 05:58:48