VS2010编写自定义宏

来源:互联网 发布:求救暗号 知乎 编辑:程序博客网 时间:2024/05/16 06:19
1.代码折叠和展开:ctrl+m

2.代码整理:alt+F8
3.代码任意折叠:#pragma region kinect感应动作和#pragma endregion

VS2010中“折叠所有大纲”的快捷键是哪个?
就是缩起所有代码块吧?Ctrl+M,ctrl+o
ctrl + m,ctrl + o; 记住要分开按键

环境:Visual Studio 2010

问题:代码中出现中文后会带下划线,很多时候感觉很不舒服。找了很久的原因没找到,后来无意中在VisualAssist X里找到了解决办法。

1.安装完Visual Assist X后会在VS2010的菜单栏出现VAssistX这个选项,单击展开,选择Visual AssistX Options;


2.把如图所示的勾去掉,解决。


以后再次在代码中出现中文的时候,就不会出现下划线了,还你一个清爽的界面。

附:

Visual AssistX10.6.1845破解版下载地址:http://download.csdn.net/detail/wentasy/4010401



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

[cpp] view plaincopy
  1. /******************************************************************* 
  2. * 函数名称: 
  3. * 功    能: 
  4. * 参    数: 
  5. * 返 回 值:void 
  6. * 创 建 人:Ajioy 
  7. * 博    客:blog.csdn.net/ajioy 
  8. * 电子邮箱:<a href="mailto:ajioy1206@gmail.com">ajioy1206@gmail.com 
  9. * 日    期:2013.1.8 21:18 
  10. *******************************************************************/</a>  


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

简单地了解一下,这里谈的宏(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.输入以下内容

[cpp] view plaincopy
  1. Imports System  
  2. Imports EnvDTE  
  3. Imports EnvDTE80  
  4. Imports EnvDTE90  
  5. Imports EnvDTE90a  
  6. Imports EnvDTE100  
  7. Imports System.Diagnostics  
  8. Imports System.Text  
  9. Imports System.Text.RegularExpressions  
  10. Imports System.IO  
  11. Imports System.Collections.Specialized  
  12.   
  13. Public Module AjioyMacros'这里要与保存的Module名保持一致,不然无法调用宏  
  14.     Sub AddMessageBox()  
  15.         'DESCRIPTION 增加对话框  
  16.         ActiveDocument.Selection.Text = "MessageBox("""",""提示"");" + vbNewLine + "system(""pause"");"  
  17.     End Sub  
  18.     Sub AddStartComment()  
  19.         'DESCRIPTION 注释开始  
  20.         ActiveDocument.Selection.Text = "system(""pause"");"  
  21.     End Sub  
  22.     Public Sub FileSign()  
  23.         'DESCRIPTION 文件签名  
  24.         Dim Description As New StringBuilder  
  25.         Dim BlankLine As String  
  26.         BlankLine = "//" + vbNewLine  
  27.         With Description  
  28.             .AppendFormat("//Copyright (c) 2013 Ajioy All Rights Reserved{0}",vbNewLine)  
  29.             .AppendFormat("/*********************************************************************************************{0}", vbNewLine)  
  30.             .AppendFormat("*文件名:{0}{1}{2}", vbTab, DTE.ActiveDocument.Name, vbNewLine)  
  31.             .AppendFormat("*说明:{0}{1}{2}", vbTab, "", vbNewLine)  
  32.             .AppendFormat("*创建日期:{0}{1}{2}", vbTab, Date.Today.ToString("yyyy-MM-dd"), vbNewLine)  
  33.             .AppendFormat("*作者:{0}{1}{2}", vbTab, "Ajioy", vbNewLine)  
  34.             .AppendFormat("*版本:{0}{1}{2}", vbTab, "1.0", vbNewLine)  
  35.             .AppendFormat("*----------------------------------------------------------------------------------------------{0}", vbNewLine)  
  36.             .AppendFormat("*修改记录:{0}", vbNewLine)  
  37.             .AppendFormat("*日期{0}版本{1}修改人{2}修改内容{3}", New String(vbTab, 3), vbTab, vbTab, vbNewLine)  
  38.             .AppendFormat("*{0}{1}", Date.Today.ToString("yyyy-MM-dd"), vbNewLine)  
  39.             .AppendFormat("********************************************************************************************/{0}", vbNewLine)  
  40.             .Append(vbNewLine)  
  41.         End With  
  42.         '插入cs文件头部  
  43.         Dim objSel As TextSelection  
  44.         objSel = CType(DTE.ActiveDocument.Selection, TextSelection)  
  45.         DTE.UndoContext.Open("FileSign")  
  46.         objSel.StartOfDocument(False)  
  47.         objSel.Insert(Description.ToString())  
  48.         DTE.UndoContext.Close()  
  49.     End Sub  
  50.     Sub FunctionSign()  
  51.         'DESCRIPTION 文件签名  
  52.         Dim obj  
  53.         obj = Now()  
  54.         Dim DocSel As EnvDTE.TextSelection  
  55.         DocSel = DTE.ActiveDocument.Selection  
  56.         DocSel.NewLine()  
  57.         DocSel.Text = "/*******************************************************************"  
  58.         DocSel.NewLine()  
  59.         DocSel.Text = "* 函数名称:"  
  60.         DocSel.NewLine()  
  61.         DocSel.Text = "* 功    能:"  
  62.         DocSel.NewLine()  
  63.         DocSel.Text = "* 参    数:"  
  64.         DocSel.NewLine()  
  65.         DocSel.Text = "* 返 回 值:"  
  66.         DocSel.NewLine()  
  67.         DocSel.Text = "* 创 建 人:Ajioy"  
  68.         DocSel.NewLine()  
  69.         DocSel.Text = "* 博    客:blog.csdn.net/ajioy"  
  70.         DocSel.NewLine()  
  71.         DocSel.Text = "* 电子邮箱:ajioy1206@gmail.com"  
  72.         DocSel.NewLine()  
  73.         DocSel.Text = "* 日    期:" + CStr(Year(obj)) + "." + CStr(Month(obj)) + "." + CStr(Day(obj)) + " " + CStr(Hour(obj)) + ":" + CStr(Minute(obj)) 'System.DateTime.Now.ToLongDateString()  
  74.         DocSel.NewLine()  
  75.         DocSel.Text = "*******************************************************************/"  
  76.     End Sub  
  77.     Sub AddModify()  
  78.         'DESCRIPTION 增添修改  
  79.         Dim obj  
  80.         obj = Now()  
  81.         ActiveDocument.Selection.Text = "//Ajioy" + CStr(Year(obj)) + "." + CStr(Month(obj)) + "." + CStr(Day(obj))  +" " + CStr(Hour(obj)) + ":" + CStr(Minute(obj)) + " 修改"  
  82.     End Sub  
  83.     Sub AddStartSymbol()  
  84.         'DESCRIPTION 开始注释  
  85.         ActiveDocument.Selection.Text = "/*"  
  86.     End Sub  
  87.     Sub AddEndSymbol()  
  88.         'DESCRIPTION 结束注释  
  89.         ActiveDocument.Selection.Text = "*/"  
  90.     End Sub  
  91. End Module  

保存后关闭宏IDE

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

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

全文完。