VS扩展开发(四) 添加右键菜单项 二级菜单

VS代码窗口默认右键菜单:
在这里插入图片描述
添加自定义右键菜单项“添加右键菜单lalala”后:
在这里插入图片描述
皮肤颜色是默认的,可以修改,可以参考其他博客(dbq,因为之前写这篇博客时截的代码图,后来自己发现太糊了而又懒得复原)
Commands package里包含了三组Guid和ID,
从父到子依次为:

guid="guidSHLMainMenu" id="IDM_VS_CTXT_CODEWIN"
guid="guidRightClickPackageCmdSet" id="myMenuGroup"priority="0x1020"
guid="guidRightClickPackageCmdSet" id="cmdIDMyCommand"priority="0x0100" type="Button"

最开始父Guid和ID决定了菜单添加的位置
guid=“guidSHLMainMenu” id="IDM_VS_CTXT_CODEWIN"表示对主窗口的代码窗口的右键菜单操作

如果要添加二级菜单,如下图:
在这里插入图片描述

先新建一个group1以右键菜单为parent,一级菜单项要定义为Menu而不是Button,以group1为parent,再定义一个group2以一级菜单Menu为parent,再将二级菜单项定义为Button并以group2为parent

<GuidSymbol name="guidAddNewRightClickMenuCmdSet" value="{D4F02A6A-C5AE-4BF2-938D-F1625BDCA0E3}">
   <IDSymbol name="RightClickMenuNewGroup" value="0x3100" />
   <IDSymbol name="CommandNewId" value="0x3110" />
   <IDSymbol name="NewRightClickMenuGroup" value="0x3200" />
   <IDSymbol name="CommandNewSceneId" value="0x3210" />
   <IDSymbol name="CommandNewLayoutId" value="0x3220" /
</GuidSymbol>
<Menus>
    <Menu guid ="guidAddTopMenuCmdSet" id="TopLevelMenu" priority="0xFFFF" type="Menu">
      <Parent guid="guidSHLMainMenu" id="IDG_VS_MM_BUILDDEBUGRUN"/>
      <Strings>
        <ButtonText>Nibiru</ButtonText>
        <CommandName>Nibiru</CommandName>
      </Strings>
    </Menu>   
  <Menu guid ="guidAddNewRightClickMenuCmdSet" id="CommandNewId" priority="0x3110" type="Menu">
    <Parent guid="guidAddNewRightClickMenuCmdSet" id="RightClickMenuNewGroup"/>
    <Strings>
      <ButtonText>New</ButtonText>
      <CommandName>New</CommandName>
    </Strings>
 </Menu>

</Menus>
<Groups>
     <Group guid="guidAddNewRightClickMenuCmdSet" id="RightClickMenuNewGroup" priority="0x3100">
       <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_PROJNODE"/>
     </Group>
     <Group guid="guidAddNewRightClickMenuCmdSet" id="NewRightClickMenuGroup" priority="0x3200">
       <Parent guid="guidAddNewRightClickMenuCmdSet" id="CommandNewId"/>
     </Group>        
</Groups>
  
<Buttons>
    <Button guid="guidAddNewRightClickMenuCmdSet" id="CommandNewSceneId" priority="0x3210" type="Button">
      <Parent guid="guidAddNewRightClickMenuCmdSet" id="NewRightClickMenuGroup" />
      <Strings>
        <ButtonText>New Scene</ButtonText>
      </Strings>
    </Button>
  <Button guid="guidAddNewRightClickMenuCmdSet" id="CommandNewLayoutId" priority="0x3220" type="Button">
     <Parent guid="guidAddNewRightClickMenuCmdSet" id="NewRightClickMenuGroup" />
     <Strings>
       <ButtonText>New Layout</ButtonText>
     </Strings>
   </Button>       
 </Buttons>    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值