【问题标题】:Adding SubMenu to Visual Studio Project Item Node将 SubMenu 添加到 Visual Studio 项目项节点
【发布时间】:2013-11-02 11:58:20
【问题描述】:

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

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

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

【问题讨论】:

    标签: visual-studio-2012 visual-studio-extensions


    【解决方案1】:

    编写VSCT 文件有些棘手;您需要的是菜单和按钮的组合。首先,您需要在 VSCT 文件中引用 IDM_VS_CTXT_ITEMNODE 组。

    <Group guid="guidCmdSet" id="grpIdMenuProjectItem" priority="0x0800">
        <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITEMNODE" />
    </Group>
    

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

      <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>
    

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

    <Group guid="guidCmdSet" id="sampleMenuGroup" priority="0x1000">
        <Parent guid="guidCmdSet" id="sampleMenu"/>
    </Group>
    

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

    <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>
    

    不要忘记定义所有符号,否则资源将无法编译。

    <IDSymbol name="grpIdMenuProjectItem" value="0x1020"/>
    <IDSymbol name="sampleMenu" value="0x1021"/>
    <IDSymbol name="sampleMenuGroup" value="0x1022"/>
    <IDSymbol name="sampleMenuItem" value="0x1023"/>
    

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

    【讨论】:

    • 如何在“文档”选项卡上下文菜单中添加命令。 “Pin Tab”所在的菜单。
    • @LawrenceA.Contreras 你应该像这样指定正确的父级 DynamicVisibility我的菜单
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 2020-12-22
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多