VS2010编写自定义宏

这里所说的宏可不是指#define PI 3.14159之类的,而是按下Alt + 1,Alt + 2之类的键盘组合之后可以方便地插入一大串自定义的内容,如:

/*******************************************************************
* 函数名称:
* 功    能:
* 参    数:
* 返 回 值:void
* 创 建 人:Ajioy
* 博    客:blog.csdn.net/ajioy
* 电子邮箱:ajioy1206@gmail.com
* 日    期:2013.1.8 21:18
*******************************************************************/


这在团队开发中显得尤为重要,当然,在网络上发布源代码时也起到一个简单地版权声明作用,而不需要人为地花时间编写及排版,减少了许多繁琐而不必要的工作。

简单地了解一下,这里谈的宏(Macro)是开发工具VS2010(或VS的其它版本)自带的,一种方便开发人员进行注释、版权声明或者执行其他若干琐碎工作的“小机器人”。重复、不辞劳苦地为我们做一些不可缺少的小事。总之,有它的存在,生活更美好。

怎样自己写一个宏?

1.打开VS2010(或VS的其它版本),“Tools” -->  "Macros"--->"Macros IDE...(Alt + F11)" 打开宏IDE

2.在宏IDE的工具栏中"Project"->"Add Module"(或Add New Item)->Name:AjioyMacros--->"Add"

3.将初始内容替换成以下代码

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics
Imports System.Text
Imports System.Text.RegularExpressions
Imports System.IO
Imports System.Collections.Specialized

Public Module AjioyMacros'这里要与保存的Module名保持一致,不然无法调用宏
    Sub AddMessageBox()
        'DESCRIPTION 增加对话框
        ActiveDocument.Selection.Text = "MessageBox("""",""提示"");" + vbNewLine + "system(""pause"");"
    End Sub
    Sub AddStartComment()
        'DESCRIPTION 注释开始
        ActiveDocument.Selection.Text = "system(""pause"");"
    End Sub
    Public Sub FileSign()
        'DESCRIPTION 文件签名
        Dim Description As New StringBuilder
        Dim BlankLine As String
        BlankLine = "//" + vbNewLine
        With Description
            .AppendFormat("//Copyright (c) 2013 Ajioy All Rights Reserved{0}",vbNewLine)
            .AppendFormat("/*********************************************************************************************{0}", vbNewLine)
            .AppendFormat("*文件名:{0}{1}{2}", vbTab, DTE.ActiveDocument.Name, vbNewLine)
            .AppendFormat("*说明:{0}{1}{2}", vbTab, "", vbNewLine)
            .AppendFormat("*创建日期:{0}{1}{2}", vbTab, Date.Today.ToString("yyyy-MM-dd"), vbNewLine)
            .AppendFormat("*作者:{0}{1}{2}", vbTab, "Ajioy", vbNewLine)
            .AppendFormat("*版本:{0}{1}{2}", vbTab, "1.0", vbNewLine)
            .AppendFormat("*----------------------------------------------------------------------------------------------{0}", vbNewLine)
            .AppendFormat("*修改记录:{0}", vbNewLine)
            .AppendFormat("*日期{0}版本{1}修改人{2}修改内容{3}", New String(vbTab, 3), vbTab, vbTab, vbNewLine)
            .AppendFormat("*{0}{1}", Date.Today.ToString("yyyy-MM-dd"), vbNewLine)
            .AppendFormat("********************************************************************************************/{0}", vbNewLine)
            .Append(vbNewLine)
        End With
        '插入cs文件头部
        Dim objSel As TextSelection
        objSel = CType(DTE.ActiveDocument.Selection, TextSelection)
        DTE.UndoContext.Open("FileSign")
        objSel.StartOfDocument(False)
        objSel.Insert(Description.ToString())
        DTE.UndoContext.Close()
    End Sub
    Sub FunctionSign()
        'DESCRIPTION 文件签名
        Dim obj
        obj = Now()
        Dim DocSel As EnvDTE.TextSelection
        DocSel = DTE.ActiveDocument.Selection
        DocSel.NewLine()
        DocSel.Text = "/*******************************************************************"
        DocSel.NewLine()
        DocSel.Text = "* 函数名称:"
        DocSel.NewLine()
        DocSel.Text = "* 功    能:"
        DocSel.NewLine()
        DocSel.Text = "* 参    数:"
        DocSel.NewLine()
        DocSel.Text = "* 返 回 值:"
        DocSel.NewLine()
        DocSel.Text = "* 创 建 人:Ajioy"
        DocSel.NewLine()
        DocSel.Text = "* 博    客:blog.csdn.net/ajioy"
        DocSel.NewLine()
        DocSel.Text = "* 电子邮箱:ajioy1206@gmail.com"
        DocSel.NewLine()
        DocSel.Text = "* 日    期:" + CStr(Year(obj)) + "." + CStr(Month(obj)) + "." + CStr(Day(obj)) + " " + CStr(Hour(obj)) + ":" + CStr(Minute(obj)) 'System.DateTime.Now.ToLongDateString()
        DocSel.NewLine()
        DocSel.Text = "*******************************************************************/"
    End Sub
    Sub AddModify()
        'DESCRIPTION 增添修改
        Dim obj
        obj = Now()
        ActiveDocument.Selection.Text = "//Ajioy" + CStr(Year(obj)) + "." + CStr(Month(obj)) + "." + CStr(Day(obj))  +" " + CStr(Hour(obj)) + ":" + CStr(Minute(obj)) + " 修改"
    End Sub
    Sub AddStartSymbol()
        'DESCRIPTION 开始注释
        ActiveDocument.Selection.Text = "/*"
    End Sub
    Sub AddEndSymbol()
        'DESCRIPTION 结束注释
        ActiveDocument.Selection.Text = "*/"
    End Sub
End Module

保存后关闭宏IDE

4.回到VS2010主界面,"Tools"--->"Options"--->"Environment"--->"Keyboard"--->在Show commands containing:下的编辑框中输入FunctionSign(所有带括号的那些名称,如AddStartSymbol()...),会看到有"Macros.Macros(或Samples).AjioyMacros.FunctionSign"的项,选中它,在Press shortcut keys:下自定义快捷键,建议用Alt +  数字0-9和-+键组合,以免与编译环境快捷键发生冲突,之后"Assign",最后确定。

接下来我们可以随便验证一下,打开一个.cpp文件,按下Alt + 数字,看看会发生什么。

全文完。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值