创建项目
- 文件–新建项目
- 如果新建项目 左侧没有扩展菜单,请安装即可
添加菜单
- 右键–添加新项
菜单设置
- 菜单设置文件: MyCommandPackage.vsct
<Buttons>
<Button guid="guidMyCommandPackageCmdSet" id="MyCommandId" priority="0x0101" type="Button">
<Parent guid="guidMyCommandPackageCmdSet" id="MyMenuGroup" />
<Icon guid="guidImages" id="bmpPic1" />
<Strings>
<ButtonText>菜单一</ButtonText>
</Strings>
</Button>
<Button guid="guidMyCommandPackageCmdSet" id="MyCommandId" priority="0x0102" type="Button">
<Parent guid="guidMyCommandPackageCmdSet" id="MyMenuGroup" />
<Icon guid="guidImages" id="bmpPic1" />
<Strings>
<ButtonText>菜单二</ButtonText>
</Strings>
</Button>
</Buttons>
<Groups>
<Group guid="guidMyCommandPackageCmdSet" id="MyMenuGroup" priority="0x0600">
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_PROJNODE"/>
</Group>
</Groups>
<!--
id值说明:
IDM_VS_CTXT_SOLNNODE 是指的解决方案资源管理器里的解决方案
IDM_VS_CTXT_SOLNFOLDER 是指的解决方案资源管理器里的 解决方案里的文件夹,不是项目里的哈,这个文件夹是虚拟的,没有实际的文件夹映射
IDM_VS_CTXT_PROJNODE 是指的解决方案资源管理器里的项目
IDM_VS_CTXT_FOLDERNODE 是指的解决方案资源管理器里的项目里的文件夹
IDM_VS_CTXT_ITEMNODE 是指的解决方案资源管理器里的项目里的项,就例如cs、js文件
-->
点击事件
private MyCommand(Package package)
{
if (package == null)
{
throw new ArgumentNullException("package");
} this.package = package; OleMenuCommandService commandService = this.ServiceProvider.GetService(typeof(IMenuCommandService)) as OleMenuCommandService;
if (commandService != null)
{
var menuCommand01 = new CommandID(CommandSet, 0x0101);
var menuItem = new MenuCommand(this.MenuItemCallback, menuCommand01);
commandService.AddCommand(menuItem); var menuCommand02 = new CommandID(CommandSet, 0x0102);
var menuItem02 = new MenuCommand(this.MenuItemCallback, menuCommand02);
commandService.AddCommand(menuItem02);
}
}