这里所说的宏是指通过一系列键盘组合键和可以插入自定义内容。下面介绍怎么编写一个自己的宏:

1、在Visual Studio 2010中按Alt+F11打开宏IDE:

2、打开后选择添加模块:

3、在弹出的窗口中输入名称后确定添加:

4、出现如下页面即可进行编辑:

5、在Public Module MyInformation中添加如下代码:

(1)FileSign函数:添加作者信息

 Public Sub FileSign()
Dim DocSel As EnvDTE.TextSelection
DocSel = DTE.ActiveDocument.Selection '活动点移到文件开头
DTE.ActiveDocument.Selection.StartOfDocument() If DocSel.FindPattern("Last modified", vsFindOptions.vsFindOptionsRegularExpression) Then
'找到Last modified字符串,说明已经添加过作者信息,只更新Last modified和Filename信息
DocSel.SelectLine()
DocSel.Delete()
DocSel.SelectLine()
DocSel.Delete()
DocSel.Text = "// Last modified : " + Date.Today.ToString("yyyy-MM-dd") + " " + TimeOfDay.Hour.ToString("") + ":" + TimeOfDay.Minute.ToString("")
DocSel.NewLine()
DocSel.Text = "// Filename : " + DTE.ActiveDocument.Name
DocSel.NewLine()
Else
'没有找到Last modified字符串,添加全部信息
DTE.ActiveDocument.Selection.StartOfDocument()
DocSel.Text = "//=================================================================="
DocSel.NewLine()
DocSel.Text = "// Author : vitah"
DocSel.NewLine()
DocSel.Text = "// Mail : linw1225@163.com"
DocSel.NewLine()
DocSel.Text = "// Last modified : " + Date.Today.ToString("yyyy-MM-dd") + " " + TimeOfDay.Hour.ToString("") + ":" + TimeOfDay.Minute.ToString("")
DocSel.NewLine()
DocSel.Text = "// Filename : " + DTE.ActiveDocument.Name
DocSel.NewLine()
DocSel.Text = "// Description :"
DocSel.NewLine()
DocSel.Text = "//"
DocSel.NewLine()
DocSel.Text = "//=================================================================="
DocSel.NewLine()
DocSel.NewLine()
End If DocSel.MoveToLineAndOffset(, ) '活动点移动到Description处,填写描述信息
End Sub

FileSign

(2)FuncSign函数:添加函数注释
  Public Sub FuncSign()
Dim DocSel As EnvDTE.TextSelection
DocSel = DTE.ActiveDocument.Selection
DocSel.NewLine()
DocSel.Text = "//=================================================================="
DocSel.NewLine()
DocSel.Text = "// Function : "
DocSel.NewLine()
DocSel.Text = "// Description : "
DocSel.NewLine()
DocSel.Text = "// Calls : "
DocSel.NewLine()
DocSel.Text = "// Called By : "
DocSel.NewLine()
DocSel.Text = "// Table Accessed : "
DocSel.NewLine()
DocSel.Text = "// Table Updated : "
DocSel.NewLine()
DocSel.Text = "// Input : "
DocSel.NewLine()
DocSel.Text = "// Output : "
DocSel.NewLine()
DocSel.Text = "// Return : "
DocSel.NewLine()
DocSel.Text = "// Others : "
DocSel.NewLine()
DocSel.Text = "//=================================================================="
End Sub

FuncSign

添加完成后保存:

6、保存后可以关闭宏IDE,进入Visual Studio 2010主界面—>工具—>选项—>环境—>键盘项,进入如下页面:

7、接着可以为刚才编写的宏映射键盘快捷键(在此只演示添加作者信息的函数FileSign的设置操作,函数FuncSign设定与之类似):

输入快捷键后,点击分配按钮,若快捷键没有被占用则下面的“快捷键的当前使用对象”框内容为空,可以点击确定完成宏的映射设置;

8、完成后,即可验证本次宏的编写是否正确。

注:

本文中的代码适用于C/C++文件,且注释必须是每行行首添加“//”,若是在首行行首和末行行末各添加“/*”和“*/”会出现如下问题:

当代码文件的第一行不是空白行时,会出现如下错误;若代码文件第一行为空,则显示正常。

附:

(1)部分图片引用自CSDN郗晓勇的博客:http://blog.csdn.net/beijiguangyong/article/details/6371504

(2)MSDN中关于宏的一些介绍:http://msdn.microsoft.com/zh-cn/library/b4c73967(v=vs.100).aspx

(3)MSDN中关于控制代码编辑器的介绍:http://msdn.microsoft.com/zh-cn/library/cwda3d81(v=vs.100).aspx

(4)MSDN中关于TextSelection接口的介绍:http://msdn.microsoft.com/zh-cn/library/EnvDTE.TextSelection_methods(v=vs.100).aspx

VS2010中编写宏添加作者信息与函数注释的更多相关文章

  1. [linux] vim在源代码中自动添加作者信息(转载)

    原文出处: http://www.vimer.cn/2009/10/用vim在源代码中添加你的个人信息.html vim ~/.vimrc "进行版权声明的设置 "添加或更新头 m ...

  2. VS2010中编写x64汇编的具体方法

    编写涉及系统特性的一些底层程序,特别是ShellCode,不可避免地要采用直接编写汇编代码的方式. 在目标平台为x86模式时,可以直接使用内联汇编,这个很多人都比较熟悉了,也非常地方便. 但是当目标平 ...

  3. office中通过宏添加快捷键

    把“Microsoft 公式 3.0”作为一个按钮放在 2013中的快速访问工具栏的方法 在使用office办公软件的过程中,因为有的人还在使用office2003版本,所以在使用高版本的office ...

  4. Lisp中编写宏的步骤以及规范

    一.编写步骤 1.编写示例的宏调用以及它应当展开的代码,反之亦然. 2.编写从示例调用中生成手写展开式的代码. 3.确保宏抽象不产生"泄露". 二.遵循规则 1.除非有特殊理由,否 ...

  5. pycharm查看代码注释的方法,代码编写日志及作者信息等

    竟然在边栏有个右键的快捷键.annotate可以查看代码书写日期及作者 鼠标悬停可以看到更加详细的时间等信息 原理应该是利用git blame

  6. VS2010中 为图片添加背景图片

    很简单的东西,嘿嘿 void CTestDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage( ...

  7. eclipse自动添加作者、日期等注释

    使用eclipse的时候一般会添加自己的注释,标注日期作者等内容,我总结的添加注释的方式有两种:一.在新建class时自动添加注释:二.通过快捷键自动添加注释.下面分别描述一下添加方式. 一.新建cl ...

  8. Vim中自动在程序起始处添加版权和作者信息

    在编写程序的时候,经常需要在程序开始写上程序的简要介绍和作者信息,如下: 这种信息,除了文件名和修改时间可能经常发生变化外,其他基本不变,可以在程序开始自动加入,方法就是在家目录下的.vimrc中写入 ...

  9. C语言中的宏定义

    目录(?)[-] 简单宏定义 带参数的宏 运算符 运算符 宏的通用属性 宏定义中圆括号 创建较长的宏 较长的宏中的逗号运算符 宏定义中的do-while循环do 空操作的定义 预定义宏 C语言中常用的 ...

随机推荐

  1. Qt 学习之路 :信号槽

    信号槽是 Qt 框架引以为豪的机制之一.熟练使用和理解信号槽,能够设计出解耦的非常漂亮的程序,有利于增强我们的技术设计能力. 所谓信号槽,实际就是观察者模式.当某个事件发生之后,比如,按钮检测到自己被 ...

  2. IOS-tableView中的cellHeadView随着table滚动

    IOS-tableView中的cellHeadView随着table滚动 设置table的style 首先要将table设置为UITableViewStyleGrouped类型.这样就会得到table ...

  3. Java基础知识强化之集合框架笔记19:List集合迭代器使用之 并发修改异常的产生原因 以及 解决方案

    1. 我有一个集合,如下,请问,我想判断里面有没有"world"这个元素,如果有,我就添加一个"javaee"元素,请写代码实现. ConcurrentModi ...

  4. iOS图片压缩

    项目中常会遇到,上传图片的操作,由于iPhone手机直接拍照的图片往往比较大,一般3-4M,如果直接上传不做处理会浪费用户很多流量,再者有很多场景并不需要高清图片,所以在上传图片前对图片进行压缩,是很 ...

  5. js自定义方法名

    自定义方法名: <script language="javascript" type="text/javascript">window.onload ...

  6. appium系列教程(转载)

    1.系列文章:转载来源:乙醇的cnblog http://www.kuqin.com/shuoit/20140704/340994.html 2.环境部署:http://www.51testing.c ...

  7. 在oracle中怎么把一张表的数据插入到另一张表中

    把table2表的数据插入到table1中 insert   into   table1   select   *   from   table2

  8. WCF存储图片到指定文件夹下

    string path = System.IO.Directory.GetCurrentDirectory() + @"\POIImages\"; Guid imgid = Gui ...

  9. ubuntu libreOffice设置为中文界面

    在终端输入: sudo apt-get install libreoffice-l10n-zh-cn libreoffice-help-zh-cn 上面的命令是下载中文包,并安装,再次打开libreo ...

  10. [转]mysql自动定时备份数据库的最佳方法-支持windows系统

    网上有很多关于window下Mysql自动备份的方法,可是真的能用的也没有几个,有些说的还非常的复杂,难以操作. 我们都知道mssql本身就自带了计划任务可以用来自动备份,可是mysql咱们要怎么样自 ...