[英]How to create a sub-menu in the Windows shell context menu in C#?
我正在使用pInvoke
, IShellExtInit
和IContextMenu
將上下文菜單添加到C#中的資源管理器外殼中。
我可以使用以下代碼將單個項目添加到上下文菜單:
MENUITEMINFO mii = new MENUITEMINFO();
mii.cbSize = (uint)Marshal.SizeOf(mii);
mii.fMask = MIIM.MIIM_BITMAP | MIIM.MIIM_STRING | MIIM.MIIM_FTYPE | MIIM.MIIM_ID | MIIM.MIIM_STATE ;
mii.wID = idCmdFirst + increment;
mii.fType = MFT.MFT_STRING;
mii.dwTypeData = contextMenuItem.ItemText;
mii.fState = MFS.MFS_ENABLED;
mii.hbmpItem = this._pMenuBitmap;
NativeMethods.InsertMenuItem(hMenu, increment, true, ref mii)
我想做的是添加一個菜單樹; 即向新創建的菜單項添加子菜單。 我的本能是使用:
var subMenu = mii.hSubMenu;
...
NativeMethods.InsertMenuItem(subMenu,....)
但是子菜單始終為零值。
誰能幫我?
我想您的意思是您要彈出一個級聯子菜單?
您需要使用:
CreatePopupMenu()
創建一個新菜單 MENUITEMINFO
,將.hSubMenu
設置為菜單的句柄,然后使用MIIM_SUBMENU | MIIM_TYPE
MIIM_SUBMENU | MIIM_TYPE
掩碼,要插入到上下文菜單中,可以通過IContextMenu:QueryContextMenu
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.