VSIX项目,添加右键菜单(二)

1、新建VSIX项目后,里边基本什么都没有

项目上右击,添加新建项

随便起一个名字,例如我的是  RightCmd

2、里边有一个vsct的文件,这个文件相当于MVC里的html,是用于配置显示的。

打开它,里边前几行,有一个引入的文件,vsshlids.h,这个文件,你可以去      项目路径\packages\Microsoft.VSSDK.BuildTools.14.3.25407\tools\vssdk\inc   (注意版本号)下找,里边是vs自带的命令

其中比较关键的几个

guidSHLMainMenu  是vs主窗体用的(不知道对不对,但意思就是说vs的主要窗体)。

IDM_VS_CTXT_SOLNNODE  是指的解决方案资源管理器里的    解决方案,

IDM_VS_CTXT_SOLNFOLDER    是指的解决方案资源管理器里的    解决方案里的文件夹,不是项目里的哈,这个文件夹是虚拟的,没有实际的文件夹映射,

IDM_VS_CTXT_PROJNODE  是指的解决方案资源管理器里的   项目,

IDM_VS_CTXT_FOLDERNODE  是指的解决方案资源管理器里的   项目里的文件夹,

IDM_VS_CTXT_ITEMNODE  是指的解决方案资源管理器里的   项目里的项,就例如cs、js文件

其他的暂时不是特别清楚

3、这个vsct文件呢,和平常的定义界面的逻辑一样,你得先定义

   <Symbols>  里边定义一个   GuidSymbol,name随便起一个(guidItemNodeCmdSet),value 是一个guid,你可以使用vs自带的guid生成工具

 

 

选择注册表格式,点“复制”,把他放到你的GuidSymbol 的  value 里

这就相当于  定义了一个变量容器,变量容器名 叫  guidItemNodeCmdSet,对映的一个绝对名字  ,就是那串GUID

里边定义了一个变量,名 叫 ItemNode, 相对名字是  0x1004(这个随便,但是在同一个变量容器里,这个值不能一样)

 4、下边,定义一个Group,相当于一个容器

在Groups 里边加上这个

 

<!---->
<Group guid="guidItemNodeCmdSet" id="ItemNode" priority="0x0100">
    <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITEMNODE"/>
</Group>

 

 其中,Group的name  就是上边的那个变量容器,ID 就是上边的变量

注意的是  Parent,guid写的是guidSHLMainMenu  ,id 是  IDM_VS_CTXT_ITEMNODE(是指的解决方案资源管理器里的   项目里的项,就例如cs、js文件),这表示,如果产生效果,那就是在解决方案里的项上产生

此示例,就是指的在  项上右击,在右击菜单里新增一个按钮

如果你想把按钮放到项目上、文件夹上等等,那就改变这个值,取值在本文(2)里边。如果想同时在多个上边都有按钮,那就重复 步骤3、4,把id改一下

5、按钮

在 Buttons 节点下,新增一个按钮(自动生成的那个也行)

注意,Parent里的guid 和id  改成  group的guid  和id

<Button guid="guidUpdateBtn" id="UpdateClassFromDbCmdId" priority="0x0100" type="Button">
    <Parent guid="guidItemNodeCmdSet" id="ItemNode"/>
    <Icon guid="guidImages" id="bmpPicSearch" />
    <!-- 下边两个是用来控制按钮的是否可用的 -->
    <CommandFlag>DefaultDisabled</CommandFlag>
    <CommandFlag>DynamicVisibility</CommandFlag>
    <Strings>
        <ButtonText>右键菜单</ButtonText>
    </Strings>
</Button>

 

6、运行,按一下F5,启动  vs的运行实例,然后随便打开一个项目

好了,右键菜单出现了

 

微软的教程,用谷歌浏览器,可以翻译成中文

https://docs.microsoft.com/zh-cn/visualstudio/extensibility/extending-menus-and-commands

转载于:https://www.cnblogs.com/sdwdjzhy/p/7300480.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值