中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual C++ > 宏处理
仿照VC.NET的选择行注释宏
作者:cadinfo 时间:2001-10-07 10:06 出处:互联网 责编:chinaitpower
              摘要:仿照VC.NET的选择行注释宏

ʹÓùýVS.NETµÄÅóÓÑ´ó¸Å¶¼ÖªµÀÄǸöIDE»·¾³±ÈVS6¸üΪÈËÐÔ»¯£¬ÆäÖÐÓÐÒ»¸öÀàËÆPBµÄÑ¡ÔñÐÐ×¢Ê͹¦ÄÜ£¬¼´ÓÃ//×¢Ê͵ôËùÓÐÑ¡ÔñµÄ´úÂë¶Î£¬±ÜÃâÁËʹÓÃ/**/µÄ²»Ö§³ÖǶÌס£
ÎÒÔÚVS6ÖÐÓÃVBScriptдÁËÒ»¸öºê£¬¿ÉÒÔ¸½¼Óµ½°´Å¥»òÕß¿ì½Ý¼ü£¬·Ç³£·½±ã£»ÒòΪÊÇѧCºÍC++µÄ£¬ËùÓÐVBScript¶ÔÎÒÀ´ËµÊÇÍâÐУ¬»¶Ó­´ó¼ÒÌá³öÐÞ¸ÄÒâ¼ûcadinfo@263.net

==========================================================================
Sub BackSlashCommentOut()
'DESCRIPTION: Comment several selected rows of codes using double-backslash

'开始定制注释宏
  Dim win
  set win = ActiveWindow
  'Added by cadinfo, 2002,6,1 窗口关闭时无法使用宏,微软有几个自带的宏存在BUG
  if VarType(win)=vbObject Then Exit Sub
  if win.type <> "Text" Then
    MsgBox "This macro can only be run when a text editor window is active."
  else
    'Define three string variable
    TmpBlock = ""
    TmpRow = ""
    CmtBlock = Trim(ActiveDocument.Selection)
    LineNum = ActiveDocument.Selection.CurrentLine
   
    '判断是否为空,空退出宏
   
    if( Len(CmtBlock)=0) Then Exit Sub

    TypeOfFile = FileType(ActiveDocument)
    If TypeOfFile > 0 And TypeOfFile < 5 Then
      If TypeOfFile > 3 Then
        CommentType = "'CMT " ' VBShit
      Else
        CommentType = "//CMT "  'C & C++ & C# &Java use the same
      End If

      '注释方式1 反斜杠backslash "//CMT"

      '---------处理开始----------------
      '直到回车符=0
      Do While Instr (CmtBlock, vbLf) <> 0
        TmpRow = Left(CmtBlock, Instr(CmtBlock, vbLf))
        If Instr(TmpRow, CommentType) = 0 Then  ' 如果没有注释标志,则添加注释
        '添加注释标志"//CMT "
          TmpBlock = TmpBlock + CommentType + TmpRow
        Else             ' 如果有注释标志,则删除注释
          TmpBlock = TmpBlock + Mid (TmpRow, Instr(TmpRow, CommentType)+Len(CommentType), Instr(TmpRow, vbLf))
        End If
        '返回右边的字符串,长度=Len(CmtBlock)-Instr(CmtBlock, vbLf)
        CmtBlock = Right(CmtBlock, (Len(CmtBlock)-Instr(CmtBlock, vbLf)))
      Loop

      '最后一行如果没有选中回车,则在行首添加注释标志"//CMT "
      if(Len(Trim(CmtBlock))<>0) Then
        If Instr(CmtBlock, CommentType) = 0 Then
          CmtBlock=CommentType+CmtBlock
        Else
          CmtBlock = vbTab+Right (CmtBlock, Len(CmtBlock) - (Instr(CmtBlock, CommentType)+Len(CommentType)))
        End If
      End If
     
      CmtBlock = TmpBlock + Trim(CmtBlock)  '拼接字符串
      '---------到此处理完毕----------------

      'ActiveDocument.Selection.Delete
      ActiveDocument.Selection = CmtBlock
      ActiveDocument.Selection.GotoLine LineNum
   
      '添加语句选择处理行   (ActiveDocument.Selection.SelectLine)
'     StartLine = ActiveDocument.Selection.TopLine
'     EndLine = ActiveDocument.Selection.BottomLine
'     For i = StartLine To EndLine
'       ActiveDocument.Selection.GoToLine i, dsSelect
'     Next

      '另外一种注释方式
      'ActiveDocument.Selection = "/*" + ActiveDocument.Selection + "*/"
    Else
      MsgBox("File not supported or unknow error!")
    End If
  End If
'结束定制注释宏
End Sub
========================================================

这次修改,完成了Toogle的功能,并且指出VS自带的一些宏中存在BUG,

在无文档打开时调用宏会报错,作者添加了判断语句,屏蔽了这个问题。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有