首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用vsx创建带有命令的子菜单?

如何使用vsx创建带有命令的子菜单?
EN

Stack Overflow用户
提问于 2010-04-15 11:19:13
回答 1查看 2.4K关注 0票数 5

我已经创建了以下vsct文件xml。

代码语言:javascript
复制
<?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>

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-15 22:26:23

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

代码语言:javascript
复制
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_PROJNODE"/>

到这一行:

代码语言:javascript
复制
<Parent guid="guidSHLMainMenu" id="IDG_VS_CTXT_PROJECT_START"/>

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

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

代码语言:javascript
复制
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_PROJNODE"/>
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2642524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档