手把手教你装饰vs2005-项目上如何添加右键菜单

  在上一篇文章 手把手教你制作vs2005装饰 中,主要介绍了如何创建和部署addins,在有了这个基础的前提条件下,我们看下如何在解决方案资源管理器中如何添加右键菜单和如何自定义输出。
仍然是在OnConnection中添加创建右键菜单的代码:

CommandBarEvents menuItemHandler;
     string   addinName  =   " 垃圾清除 " ;
_applicationObject 
=  (DTE2)application;
   _addInInstance 
=  (AddIn)addInInst;
// 获得项目的命令行菜单
CommandBars cmdBars  =  (CommandBars)(_applicationObject.DTE.CommandBars);
CommandBar vsBarProject 
=  cmdBars[ " Project " ];
 CommandBarControl menuItem 
=  vsBarProject.Controls.Add(MsoControlType.msoControlButton,  1 "" 2 true );
 menuItem.Tag 
=  addinName;
 menuItem.Caption 
=  addinName;
 menuItem.TooltipText 
=  addinNam
    menuItemHandler 
=  (CommandBarEvents)_applicationObject.DTE.Events.get_CommandBarEvents(menuItem);
 menuItemHandler.Click 
+=   new  _dispCommandBarControlEvents_ClickEventHandler(MenuItem_Click);   

上面一段代码,作用是在项目的右键菜单上增加一个名称为垃圾清除的菜单,CommandBars和CommandBar是用于管理命令栏的接口,通过
 menuItemHandler = (CommandBarEvents)_applicationObject.DTE.Events.get_CommandBarEvents(menuItem);
 menuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(MenuItem_Click);  
来添加子菜单的点击事件。

    private   void  MenuItem_Click( object  commandBarControl,  ref   bool  handled,  ref   bool  cancelDefault)
        
{
            
try
            
{
                Project prj 
= (Project)((Array)_applicationObject.ActiveSolutionProjects).GetValue(0);
                SpilthCleaner.Executor e 
= new SpilthCleaner.Executor();
                
string res = e.Clear(System.IO.Path.GetDirectoryName(prj.FullName), prj.FullName);
                OutputWindowTest(_applicationObject, res);
            }

            
catch (Exception ex)
            
{
                OutputWindowTest(_applicationObject, ex.Message);
            }

        }

Click事件中是完成了对项目垃圾文件的清除和清除结果的输出,要想在输出窗口中输出自定义的内容,可以使用下面的方法

    public   void  OutputWindowTest(DTE2 dte, string  outputStr)
        
{
            
//获得输出窗口
            OutputWindow ow = dte.ToolWindows.OutputWindow;
            
//创建属于自己的输出类型
            OutputWindowPane owP;         
            owP 
= ow.OutputWindowPanes.Add("垃圾清理");
            
//输出文字内容
            owP.OutputString(outputStr);
        }

 这篇文章参考了dudu老大的 VS 2005 Add-in开发随笔  ,非常老大为我指明了方向。

vs2005是一个扩展性比较强大的平台,虽然没有eclipse支持插件那样猛,可通过我们的挖掘,还是能在vs2005上安装不少装饰的,我这篇主要写了如何添加右键菜单和输出自定义内容,这个菜单主要完成的工作是清除项目文件夹中没有被项目引用的垃圾数据,下面是源码,大家使用的时候,将相应的.dll和.addins拷贝到C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Addins就可以了
有关垃圾清除的文章: 发布小工具- 项目垃圾文件清理器(更新070920)

上篇文章: 手把手教你制作vs2005装饰

源码文件: /Files/jillzhang/SpitchCleaner.rar

效果图:
1.在项目的右键菜单增加 垃圾清理 子菜单

2.点击垃圾清除后的自定义输出
 
不明白的TX,可以下载源程序下去看看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值