将SubMenu添加到Visual Studio项目项节点

Bij*_*mas 8 visual-studio-extensions visual-studio-2012

右键单击文件项目visual studio解决方案资源管理器时,如何添加菜单和子菜单项?

我有一个菜单和三个子菜单项,当我右键单击解决方案资源管理器中的文件时,将显示如下图所示.

我尝试使用.vsct按钮,但它将显示在上下文菜单上,而Iam无法添加子菜单

在此输入图像描述

Mat*_*tze 25

创作VSCT文件有点棘手; 您需要的是菜单和按钮的组合.首先,您需要IDM_VS_CTXT_ITEMNODE在VSCT文件中引用该组.

<Group guid="guidCmdSet" id="grpIdMenuProjectItem" priority="0x0800">
    <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITEMNODE" />
</Group>
Run Code Online (Sandbox Code Playgroud)

比你创建一个新菜单并将其添加到该组...

  <Menu guid="guidCmdSet" id="sampleMenu" type="Menu" priority="0x1000">
    <Parent guid="guidCmdSet" id="grpIdMenuProjectItem" />
    <CommandFlag>IconAndText</CommandFlag>
    <Strings>
      <ButtonText>Sample Menu</ButtonText>
      <CommandName>Sample Menu</CommandName>
    </Strings>
  </Menu>
Run Code Online (Sandbox Code Playgroud)

对于子菜单项,需要另一组,这些组将添加到菜单中...

<Group guid="guidCmdSet" id="sampleMenuGroup" priority="0x1000">
    <Parent guid="guidCmdSet" id="sampleMenu"/>
</Group>
Run Code Online (Sandbox Code Playgroud)

至少您使用按钮定义子菜单项并将它们添加到子菜单组...

<Button guid="guidCmdSet" id="sampleMenuItem" priority="0x1000" type="Button">
    <Parent guid="guidCmdSet" id="sampleMenuGroup"/>
    <CommandFlag>TextOnly</CommandFlag>
    <Strings>
        <ButtonText>Sample Menu Item 1</ButtonText>
        <CommandName>sampleMenuItem1</CommandName>
    </Strings>
</Button>
Run Code Online (Sandbox Code Playgroud)

别忘了定义所有符号,否则资源不会编译.

<IDSymbol name="grpIdMenuProjectItem" value="0x1020"/>
<IDSymbol name="sampleMenu" value="0x1021"/>
<IDSymbol name="sampleMenuGroup" value="0x1022"/>
<IDSymbol name="sampleMenuItem" value="0x1023"/>
Run Code Online (Sandbox Code Playgroud)

这就是你得到的......

在此输入图像描述