使用 vsx 如何创建带有命令的子菜单? [英] Using vsx how do you create a sub menu with commands?

查看:34
本文介绍了使用 vsx 如何创建带有命令的子菜单?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了以下 vsct 文件 xml.

I have created the following vsct file xml.

<?xml version="1.0" encoding="utf-8"?>
<CommandTable xmlns="http://schemas.microsoft.com/VisualStudio/2005-10-18/CommandTable" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <Extern href="stdidcmd.h"/>
    <Extern href="vsshlids.h"/>
    <Extern href="msobtnid.h"/>
    <Commands package="guidMyVSXCommandsPkg">
        <Menus>
            <Menu guid="guidMyVSXCommandsCmdSet" id="TopLevelMenu" priority="0x100" type="Menu">
                <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_PROJNODE"/>
                <Strings>
                    <MenuText>Work???</MenuText>
                    <ButtonText>FigureMain</ButtonText>
                    <CommandName>TryMainMenu</CommandName>
                </Strings>
            </Menu>
        </Menus>
        <Groups>
            <Group guid="guidMyVSXCommandsCmdSet" id="TopLevelMenuGroup" priority="0x0600">
                <Parent guid="guidMyVSXCommandsCmdSet" id="TopLevelMenu"/>
            </Group>
        </Groups>
        <Buttons>
            <Button guid="guidMyVSXCommandsCmdSet" id="cmdidMyCommand" priority="0x0100" type="Button">
                <Parent guid="guidMyVSXCommandsCmdSet" id="TopLevelMenuGroup" />
                <Icon guid="guidImages" id="bmpPic1" />
                <Strings>
                    <CommandName>cmdidMyCommand</CommandName>
                    <ButtonText>DO SOMETHING REAL COOL!!!!!!!!</ButtonText>
                </Strings>
            </Button>
        </Buttons>
        <Bitmaps>
            <Bitmap guid="guidImages" href="Resources\Images_32bit.bmp" usedList="bmpPic1, bmpPic2, bmpPicSearch, bmpPicX, bmpPicArrows"/>
        </Bitmaps>
    </Commands>
    <Symbols>
        <!-- This is the package guid. -->
        <GuidSymbol name="guidMyVSXCommandsPkg" value="{70e6574c-ebed-4856-b78b-0927966cc800}" />

        <!-- This is the guid used to group the menu commands together -->
        <GuidSymbol name="guidMyVSXCommandsCmdSet" value="{301c910a-65eb-42c4-bf0f-bc5aaac737f1}">
            <IDSymbol name="TopLevelMenu" value="0x0100" />
            <IDSymbol name="TopLevelMenuGroup" value="0x0200" />
            <IDSymbol name="cmdidMyCommand" value="0x0300" />
        </GuidSymbol>
        <GuidSymbol name="guidImages" value="{1997bf57-349c-434a-ad64-32a3a65e35f3}" >
            <IDSymbol name="bmpPic1" value="1" />
            <IDSymbol name="bmpPic2" value="2" />
            <IDSymbol name="bmpPicSearch" value="3" />
            <IDSymbol name="bmpPicX" value="4" />
            <IDSymbol name="bmpPicArrows" value="5" />
        </GuidSymbol>
    </Symbols>

</CommandTable>

当我的上下文菜单中有一个选项时,我想看到最终结果是什么

What the end result is I want to see when I the context menu to have an option of

工作???--> 做一些很酷的事情!!!!!!!!!

Work??? --> DO SOMETHING REAL COOL!!!!!!!!

推荐答案

您的菜单应该将其父级设置为,而不是顶级上下文菜单.例如,尝试更改此行:

Your Menu should have its parent set to a group instead of the top-level context menu. For example, try changing this line:

<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_PROJNODE"/>

到这一行:

<Parent guid="guidSHLMainMenu" id="IDG_VS_CTXT_PROJECT_START"/>

您现在应该会在项目节点的上下文菜单上的调试"旁边看到TryMainMenu".如果您希望您的菜单存在于顶级上下文菜单上的自己的组中,您应该使用父级 IDM_VS_CTXT_PROJNODE 定义一个新组,并将菜单的父级设置为该组.

You should now see "TryMainMenu" show up next to "Debug" on the project node's context menu. If you want your menu to exist in its own group on the top level context menu, you should define a new group with parent IDM_VS_CTXT_PROJNODE and set your menu's parent to that.

或者,您可以通过查看 SharedCmdPlace.vsct 并找到具有以下父级的 Group 元素来发现其他现有组(除了 IDG_VS_CTXT_PROJECT_START):

Alternatively, you can discover what the other existing groups are (besides IDG_VS_CTXT_PROJECT_START) by looking at SharedCmdPlace.vsct and finding Group elements with the following parent:

<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_PROJNODE"/>

这篇关于使用 vsx 如何创建带有命令的子菜单?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆