2009-07-20 29 views
1

我有一個使用CMenu作爲主菜單欄的MFC應用程序。
我還沒有能夠成功創建子菜單。如何將子菜單添加到MFC中的CMenu?

我可以有文件,編輯,視圖等的第一級和他們的子菜單,但我不能創建這些菜單之一的子菜單。

例如,我想能夠去文件 - >最近的項 - >在子菜單項
我能做到這一點很容易不夠,在VS的資源編輯器的列表中,但是這需要做動態。

我在CMenu中使用正確的類嗎?有什麼建議嘗試?
我還沒有找到任何體面的教程。即使將我指向正確的人也會有所幫助。

+0

什麼編程語言是您使用? – sth 2009-07-21 00:54:38

回答

2

使用您的資源編輯器添加包含一個佔位符項目的子菜單。然後,您可以通過編程來抓住這個子菜單中的引用,添加項目和刪除佔位符項:

CMenu *subMenu = mainMenu.GetSubMenu(menuPosition); 

if(subMenu) 
{ 
    for(unsigned i = 0; i < stringArray.size(); i++) 
    { 
     subMenu->AppendMenu(MF_STRING, 400 + i, stringArray[i]); 
    } 

    subMenu->DeleteMenu(ID_SUBMENU_PLACEHOLDER, MF_BYCOMMAND); 
} 
0

我必須做同樣的事情今天,我在與功能包(新UI的東西)VS2008,並一直在尋找的樣本,有關於如何添加動態菜單項(http://msdn.microsoft.com/en-us/library/bb983167.aspx

樣本

您需要重寫CFrameWndEx :: OnShowPopupMenu方法。

最大。