1、使用VS2005。创建新项目,选择Visual Studio 外接程序模版。

  1

2、VS2005会启动外接程序向导

2

3、选择语言C#

3

4、选择应用主机

 4

5、起个名字

 5

6、选择界面,第一项打勾,向导会帮我们生成在“工具”菜单下增加我们自定义的子菜单的代码

 6

7、关于对话框,要不要两可

 7

8、到此完成

 8

 

向导运行完毕,VS2005自动添加了一系列文件,最主要的就是Connect.cs,我们的自定义代码都要写在这个文件中。另外还有一个资源文件,在查找菜单项时使用,从而可以增加多语言支持。

 9

 

下面是主要代码,请注意其中的红色部分。

/// <summary>实现 IDTCommandTarget 接口的 Exec 方法。此方法在调用该命令时调用。</summary>
        /// <param term='commandName'>要执行的命令的名称。</param>
        /// <param term='executeOption'>描述该命令应如何运行。</param>
        /// <param term='varIn'>从调用方传递到命令处理程序的参数。</param>
        /// <param term='varOut'>从命令处理程序传递到调用方的参数。</param>
        /// <param term='handled'>通知调用方此命令是否已被处理。</param>
        /// <seealso class='Exec' />
        public void Exec(string commandName, vsCommandExecOption executeOption, ref object varIn, ref object varOut, ref bool handled)
        {
            handled = false;
            if(executeOption == vsCommandExecOption.vsCommandExecOptionDoDefault)
            {
                if(commandName == "MyAddin1.Connect.MyAddin1")
                {
                    string selectedCode = ((TextSelection)_applicationObject.ActiveDocument.Selection).Text;
                    string outCode = Regex.Replace(selectedCode, @"([^=]*)=([^;]*)", "$2=$1");
                    ((TextSelection)_applicationObject.ActiveDocument.Selection).Insert(outCode, (int)vsInsertFlags.vsInsertFlagsCollapseToEnd);

                    handled = true;
                    return;
                }
            }
        }
        private DTE2 _applicationObject;
        private AddIn _addInInstance;
    } 

 

posted on 2009-10-25 21:28  fishren  阅读(904)  评论(1编辑  收藏  举报