
文章插图
<Groups> <Group guid="guidMenuDemoVSIXPackageCmdSet" id="MyMenuGroup" priority="0x0600"> <!-- 代码窗口的右键菜单操作 --> <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_CODEWIN"/> </Group></Groups>
文章插图
二级菜单这里需要添加Menu了 且 一级菜单项要定义为Menu而不是Button!!
先新建一个group1以**右键菜单为parent(已知定义ID)**,以group1为parent,再定义一个group2以一级菜单Menu为parent,再将二级菜单项定义为Button并以group2为parent
有点绕吧,比如我要在工程文件的右键菜单 添加一个二级菜单,像下面这样子

文章插图
- 在Groups节点下新建一个group:MyMenuGroup1 以工程右键菜单为parent
<Group guid="guidMenuDemoVSIXPackageCmdSet" id="MyMenuGroup1" priority="0x0600"> <!--定义在头文件的已知定义ID --> <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_PROJNODE"/></Group>- 在Menus节点下新建一个menu:MyMenu,以上面的MyMenuGroup1位parent
<Menus> <Menu guid ="guidMenuDemoVSIXPackageCmdSet" id="MyMenu" priority="0x3110" type="Menu"> <Parent guid="guidMenuDemoVSIXPackageCmdSet" id="MyMenuGroup1"/> <Strings> <ButtonText>New</ButtonText> <CommandName>New</CommandName> </Strings> </Menu></Menus>- 再创建一个group:MyMenuGroup2 以上面的MyMenu为parent
<Group guid="guidMenuDemoVSIXPackageCmdSet" id="MyMenuGroup2" priority="0x0600"> <Parent guid="guidMenuDemoVSIXPackageCmdSet" id="MyMenu"/></Group>- 创建Button以MyMenuGroup2为parent
<Buttons> <Button guid="guidMenuDemoVSIXPackageCmdSet" id="TestCommandId" priority="0x0100" type="Button"> <Parent guid="guidMenuDemoVSIXPackageCmdSet" id="MyMenuGroup2" /> <Icon guid="guidImages" id="bmpPic1" /> <Strings> <ButtonText>Invoke TestCommand</ButtonText> </Strings> </Button></Buttons>完整定义: 
文章插图
如果想要同时显示在多个地方咋整比如 我既要显示在工程右键菜单里面,又要显示在普通文件的右键菜单,又要显示在代码右键菜单
这里就用到上面提到的 CommandPlacements
还是以上面的例子,这时候第一步的group1:MyMenuGroup2的parent就不能填了
而是要添加CommandPlacements,id要填 MyMenuGroup2,Parent填具体ID
<CommandPlacements> <CommandPlacement guid="guidMenuDemoVSIXPackageCmdSet" id="MyMenuGroup1" priority="0x0000"> <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_PROJNODE"/> </CommandPlacement> <CommandPlacement guid="guidMenuDemoVSIXPackageCmdSet" id="MyMenuGroup1" priority="0x0000"> <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITEMNODE" /> </CommandPlacement> <CommandPlacement guid="guidMenuDemoVSIXPackageCmdSet" id="MyMenuGroup1" priority="0x0000"> <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_CODEWIN" /> </CommandPlacement></CommandPlacements>
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ppapiflash插件是啥 ppapi插件是什么
- 【pytest官方文档】解读-开发可pip安装的第三方插件
- Eclipse插件RCP桌面应用开发的点点滴滴
- 提高工作效率的神器:基于前端表格实现Chrome Excel扩展插件
- 苹果手机红包秒收怎么设置(苹果红包插件黑科技)
- 从0开始写一个简单的vite hmr 插件
- 钩子 【pytest官方文档】解读-插件开发之hooks 函数
- 插件化编程之WebAPI统一返回模型
- 超详细 R及R Studio下载安装教程
- 浅谈 Golang 插件机制
