Visual C++ 设置批量注释

    【这是本人在书上看到的一个例子,在这里和大家分享】

实例说明:

  Visual C++6.0开发环境虽然提供了丰富的功能,但是也有不尽人意之处。例如,它没有提供批量注释和取消批量注释的功能。但是,Visual C++6.0开发环境的设计者还是非常有远见的,提供了一些接口允许用户扩充开发环境的功能。例如,可以使用  VB Script 脚本来添加新的功能。本实例将介绍使用 VB Script 脚本实现批量注释和取消批量注释的功能。。。。。好了,不废话了,,,直接 上 截图 和 代码 。

 

【1】 在 Visual C++ 6.0开发环境中选择 【File】|【New】 命令,打开 New 窗口,选择 【File】 选项卡。

【2】在列表中选择【Macro File】选项,在【File】文本框中输入文件名,单击OK按钮创建宏文件。如图所示:

Visual C++ 设置批量注释_第1张图片

 

 

【3】单击OK按钮创建宏文件,弹出 Macro File 窗口。在 Description 备注中输入宏文件的描述信息,单击OK 按钮创建宏文件。如图:

Visual C++ 设置批量注释_第2张图片

 

【4】向宏文件中添加两个子过程,语言为 VB Script,代码如下。(直接拷贝代码就可以了,不需要其他设置)

 1 Sub SetSelNote() 'Sun DESCRIPTION: 过程 SetSelNote 用于使选中的文本成为注释'
 2 dim CurWin '当前获得的窗口
 3 set CurWin=ActiveWindow
 4 if CurWin.type<>"Text" Then '判断当前窗口是不是文本窗口
 5         MsgBox"当前窗口不是代码窗口"
 6 else
 7         NoteType="//"
 8           BeginLine=ActiveDocument.Selection.TopLine
 9           EndLine=ActiveDocument.Selection.BottomLine
10         if EndLine<BeginLine then
11                 Line=BeginLine
12                 BeginLine=EndLine
13                 EndLine=Line
14         else
15             for row=BeginLine to EndLine
16                  ActiveDocument.Selection.GoToLine row
17                  ActiveDocument.Selection.SelectLine '选中当前行
18                  ActiveDocument.Selection=NoteType+ActiveDocument.Selection
19             next
20         end if
21 end if
22 end Sub
23 
24 Sub CancelSelNote()
25 dim CurWin '当前获得的窗口
26 set CurWin=ActiveWindow
27 if CurWin.type<>"Text" then '判断当前窗口是否是文本窗口
28     MsgBox"当前窗口不是代码窗口"
29 else
30     BeginLine=ActiveDocument.Selection.TopLine
31     EndLine=ActiveDocument.Selection.BottomLine
32    if EndLine<BeginLine then
33         Line=BeginLine
34         BeginLine=EndLine
35         EndLine=Line
36     else
37         for row=BeginLine to EndLine
38              ActiveDocument.Selection.GoToLine row
39              ActiveDocument.Selection.SelectLine '选中当前行
40              SelBlock=ActiveDocument.Selection
41              Trim(SelBlock)
42              pos=instr(SelBlock,"//")
43              if pos<>0 then
44                     RightBlock=Right(SelBlock,Len(SelBlock)-2)
45                     ActiveDocument.Selection=RightBlock
46             end if
47     next
48 end if
49 end if
50 end Sub

 

 

【5】保存宏文件。

   源代码就这么一点。

        接下来的操作,就是介绍  怎样  把这个 .dsm 文件添加到编译器中,供我们使用了。

【6】随便打开一个VC的工程,或者自己新建一个工程。

然后,在打开的工程中,选择 【工具】|【定制】,在弹出的对话框中,选择最右边的【附加项和宏文件】

然后,点击【浏览】,找到你的那个 .dsm宏文件。好吧,看截图。。。。

Visual C++ 设置批量注释_第3张图片      Visual C++ 设置批量注释_第4张图片

 

Visual C++ 设置批量注释_第5张图片   Visual C++ 设置批量注释_第6张图片

 

Visual C++ 设置批量注释_第7张图片

Visual C++ 设置批量注释_第8张图片

 

【】【】【】注意喽。。。选择 CancelSelNote ,把它 拖动到 工具栏中。(【拖】这个概念,相信拖过控件的童鞋都能理解)

此时,弹出了下面的窗口。。。保持默认选择,点击确定。。。同理,完成另外一个宏命令的添加。

Visual C++ 设置批量注释_第9张图片

 

 

-----------------------------------------------------------------------------------------------------------------------

  到了此处,已经完成了实例的全部操作。

  自己可以在打开的VC程序中进行测试  【批量注释】和【取消批量注释】这两个功能了。

  我相信,我的讲的过程还是很详细的。您可以参考图片进行操作。。不熟悉环境的童鞋,要多多  练习内功了。。。

  高手看了这篇文章,莫笑哦。。。给个建议啥的,也不错啊。。我也是菜鸟一个。。。。

 

ps:

  这个例子有个Bug....

  当你用【取消注释】这个功能时,它会删除选中行的前两个字符。。。

  正常情况下,删除的是每一行前面“//”这两个字符,但是,有时候,你选中多行时,如果其中有1行是不带注释的,那么,它也会删除这行的前两个字符。自己可以慢慢试一下,就清楚了。

  所以,在使用【 取消注释 】功能时,要慎用。

 

     如果有高手能改进这个 bug,  欢迎多多赐教。。。      我是来学习的。

 

 

 

 

 

你可能感兴趣的:(C++)