首页 > 编程语言 >vc++ 6.0 实现代码的多行注释与取消注释功能(实测有效)

vc++ 6.0 实现代码的多行注释与取消注释功能(实测有效)

时间:2024-09-13 15:04:33浏览次数:10  
标签:Selection End 6.0 c++ 注释 ActiveDocument 按钮 EndLine

方式一

1. 新建Macro File宏文件

点击菜单栏“文件→新建(File→New)”选项,在“新建(New)”弹框中,顶部区域选项“文件(File)”下找到Macro File,点击,并在右边输入“文件名”,点击“确定(OK)”按钮。

img

此时弹出“新建宏文件”窗口,在“描述(Descripion)”输入框中输入信息,点击“确定(OK)”按钮。

此时会生成一个后缀名为.dsm格式的文件。

img

2. 添加代码多行注释/取消注释宏文件

'------------------------------------------------------------------------------
'FILE DESCRIPTION: 添加多行注释代码功能
'------------------------------------------------------------------------------
Sub SetSelNote()'Sun DESCRIPTION: 过程SetSelNote用于将选中的文本成为注释

    dim CurWin '当前获得的窗口

    set CurWin = ActiveWindow

    if CurWin.type<>"Text" Then '判断当前窗口是否是文本窗口

        MsgBox "当前窗口不是代码窗口"

    else

        NoteType = "//"

        BeginLine = ActiveDocument.Selection.TopLine

        EndLine = ActiveDocument.Selection.BottomLine

        if EndLine < BeginLine then

            Line = BeginLine
            BeginLine = EndLine

            EndLine = Line

        else

            for  row = BeginLine To EndLine

                ActiveDocument.Selection.GoToLine row

                ActiveDocument.Selection.SelectLine '选中当前行

                ActiveDocument.Selection = NoteType + ActiveDocument.Selection

            Next

        End if

    End if

End Sub

'------------------------------------------------------------------------------
'FILE DESCRIPTION: 取消代码注释
'------------------------------------------------------------------------------
Sub CancelSelNote()

    dim CurWin '当前获得的窗口

    set CurWin = ActiveWindow

    if CurWin.type<>"Text" Then '判断当前窗口是否是文本窗口

        MsgBox "当前窗口不是代码窗口"

    else

        BeginLine = ActiveDocument.Selection.TopLine

        EndLine   = ActiveDocument.Selection.BottomLine

        if EndLine < BeginLine then 

            Line = BeginLine

            BeginLine = EndLine

            EndLine = Line

        else


            for  row = BeginLine To EndLine 

                ActiveDocument.Selection.GoToLine row

                ActiveDocument.Selection.SelectLine '选中当前行

                SelBlock =  ActiveDocument.Selection

                Trim(SelBock)

                pos =  instr(SelBlock,"//")

                if pos <>0 then

                    RightBlock = Right(SelBlock,Len(SelBlock)-2)

                    ActiveDocument.Selection = RightBlock

                End If
            Next

        End if

    End if

End Sub

3. 将注释宏命令添加到工具栏中

打开菜单栏“工具→定制(Tools→Customize)”,打开定制(Customize)对话框,点击“附加项和宏文件(Add-ins and Macro Files)”选项卡,并勾选“SAMPLE”前面的复选框。

img

点击“浏览(Browse)”按钮,选择之前创建的宏文件,此时它将会出现在“附加项和宏文件(Add-ins and Macro Files)”窗口中。

img

切换到“命令(Commands)”选项卡中,在“类别(Category)”组合框中选择“Macros”选项,在右侧的列表中会显示当前宏文件中定义的命令,在命令列表中选中“SetSelNode”,将其拖动到工具栏中,此时将弹出“按钮外观(Button Appearance)”窗口。

img

在“按钮外观(Button Appearance)”窗口中选中“仅图像(Image only)”单选按钮,在“图像(Images)”群组框中为按钮选择一个图标,单击“确定(OK)”按钮完成工具栏设置。

img

关闭“定制”弹框,此时工具栏显示图标。

img

4. 重复第三步添加取消注释宏命令

打开菜单栏“工具→定制(Tools→Customize)”,打开定制(Customize)对话框,切换到“命令(Commands)”选项卡中,在“类别(Category)”组合框中选择“Macros”选项,在右侧的列表中会显示当前宏文件中定义的命令,在命令列表中选中“CancelSelNote”,将其拖动到工具栏中,此时将弹出“按钮外观(Button Appearance)”窗口。

img

在“按钮外观(Button Appearance)”窗口中选中“仅图像(Image only)”单选按钮,在“图像(Images)”群组框中为按钮选择一个图标,单击“确定(OK)”按钮完成工具栏设置。

img

关闭“定制”弹框,此时工具栏显示图标。

img

5. 测试

选中需要注释的代码块,点击“黄色笑脸”图标,发现代码块自动实现了注释。

img

再次选中需要取消注释的代码块,点击“绿色哭脸”图标,发现代码块自动取消了注释

img

方式二

1. 新建Macro File宏文件

点击菜单栏“文件→新建(File→New)”选项,在“新建(New)”弹框中,顶部区域选项“文件(File)”下找到Macro File,点击,并在右边输入“文件名”,点击“确定(OK)”按钮。

img

此时弹出“新建宏文件”窗口,在“描述(Descripion)”输入框中输入信息,点击“确定(OK)”按钮。

此时会生成一个后缀名为.dsm格式的文件。

img

2. 添加代码多行注释/取消注释宏文件

Sub CustomCommentOut()
'DESCRIPTION: 注释/取消注释宏,可处理VB和C++、Java注释
    Dim win
    set win = ActiveWindow
    If win.type <> "Text" Then
      MsgBox "This macro can only be run when a text editor window is active."
    Else
        TypeOfFile = 3
        If TypeOfFile > 0 And TypeOfFile < 6 Then
            If TypeOfFile > 3 Then
                CommentType = "'"   ' VB注释
                CommentWidth = 1
            Else
                CommentType = "//"  ' C++、java 注释
                CommentWidth = 2
            End If
         
            StartLine = ActiveDocument.Selection.TopLine
            EndLine = ActiveDocument.Selection.BottomLine
            If EndLine < StartLine Then
                Temp = StartLine
                StartLine = EndLine
                EndLine = Temp
            End If
            ' 单行
            If EndLine = StartLine Then
                ActiveDocument.Selection.StartOfLine dsFirstColumn
                ActiveDocument.Selection.CharRight dsExtend, CommentWidth
                If ActiveDocument.Selection = CommentType Then
                    ActiveDocument.Selection.Delete
                Else
                    ActiveDocument.Selection.StartOfLine dsFirstText
                    ActiveDocument.Selection.CharRight dsExtend, CommentWidth
                    If ActiveDocument.Selection = CommentType Then
                        ActiveDocument.Selection.CharRight dsExtend
                        ActiveDocument.Selection.Delete
                    Else
                        ActiveDocument.Selection.StartOfLine dsFirstColumn
                        ActiveDocument.Selection = CommentType + _
                                        ActiveDocument.Selection
                    End If
                End If
            ' 多行
            Else
                For i = StartLine To EndLine
                    ActiveDocument.Selection.GoToLine i
                    CommentLoc = dsFirstColumn
                    ActiveDocument.Selection.StartOfLine CommentLoc
                    ActiveDocument.Selection.CharRight dsExtend, CommentWidth
                    If ActiveDocument.Selection = CommentType Then
                        ActiveDocument.Selection.Delete
                    Else
                        ActiveDocument.Selection.StartOfLine CommentLoc
                        ActiveDocument.Selection = CommentType + _
                                                  ActiveDocument.Selection
                    End If
                Next
            End If
        Else
            MsgBox("Unable to comment out the highlighted text" + vbLf + _
                "because the file type was unrecognized." + vbLf + _
                "If the file has not yet been saved, " + vbLf + _
                "please save it and try again.")
        End If
    End If
End Sub

3. 将注释宏命令添加到工具栏中

打开菜单栏“工具→定制(Tools→Customize)”,打开定制(Customize)对话框,点击“附加项和宏文件(Add-ins and Macro Files)”选项卡,并勾选“SAMPLE”前面的复选框。

img

点击“浏览(Browse)”按钮,选择之前创建的宏文件,此时它将会出现在“附加项和宏文件(Add-ins and Macro Files)”窗口中。

img

切换到“命令(Commands)”选项卡中,在“类别(Category)”组合框中选择“Macros”选项,在右侧的列表中会显示当前宏文件中定义的命令,在命令列表中选中自定义宏命令(CustomCommentOut),将其拖动到工具栏中,此时将弹出“按钮外观(Button Appearance)”窗口。

img

在“按钮外观(Button Appearance)”窗口中选中“仅图像(Image only)”单选按钮,在“图像(Images)”群组框中为按钮选择一个图标,单击“确定(OK)”按钮完成工具栏设置。

img

工具栏显示图标。通过一个图标实现代码块的注释与取消注释功能。

img

4. 测试

选中需要注释的代码块,点击“橡皮擦”图标,发现代码块自动实现了注释。

img

再次选中需要取消注释的代码块,点击“橡皮擦”图标,发现代码块自动取消了注释

img

标签:Selection,End,6.0,c++,注释,ActiveDocument,按钮,EndLine
From: https://www.cnblogs.com/mingcore/p/18412207

相关文章

  • C++并发编程的学习(9-13)
    文章来源:恋恋风辰的编程笔记https://gitbookcpp.llfc.club/sections/cpp/concurrent/concpp02.html容器存储:thread类没有拷贝构造函数,所以使用容器存储它时,不能使用push_back(),需要使用点击查看代码voiduse_vector(){std::vector<std::thread>threads;for(u......
  • 南沙C++信奥老师解一本通题: 1212:LETTERS
    ​ 题目描述】给出一个row×col的大写字母矩阵,一开始的位置为左上角,你可以向上下左右四个方向移动,并且不能移向曾经经过的字母。问最多可以经过几个字母。【输入】第一行,输入字母矩阵行数R和列数S,1≤R,S≤20。接着输出R行S列字母矩阵。【输出】最多能走过的不同字母......
  • Dev-C++小游戏大全(第三期)
    1.魔法世界#include<iostream>#include<string>#include<windows.h>#include<conio.h>#include<fstream>#include<ctime>#include<time.h>#include<stdio.h>usingnamespacestd;intD_Of_C,OK,ane,xy,D......
  • C++ const 对象
    默认状态下,const对象仅在文件内有效。constintbufSize=512;//输入缓冲区大小编译器将在编译过程中把用到该变量的地方都替换成对应的值。也就是说,编译器会找到代码中所有用到bufsize的地方,然后用512替换。某些时候有这样一种const变量,它的初始值不是一个常量表达式,但......
  • 【C++进阶】多态
    【C++进阶】多态......
  • 【C++】深究C++三大特性之多态
    1.多态的概念通俗的来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生不同的形态。例如:比如买票这个行为,当普通人买票时,是全价买票;学生买票时,是半价买票;军人买票时时是优先买票。2.多态的定义及实现2.1多态的构成条件多态是在不同继承关系的类对......
  • Android生成C++ AIDL
    生成C++[Android]接口cpp和ndk的区别cpp:生成的代码是为了在Android源码中编译,代码中会调用Android源码中的native接口。例如,引用的头文件:,,,ndk:生成的代码是为了使用ndk独立编译,调用的是ndk的接口,例如,引用的头文件:–lang=cpp,参数指定生成Android源码下编译的C++接口文件......
  • 【逐行注释】自适应Q的AUKF|MATLAB代码|无需下载,可直接复制到MATLAB上面运行
    文章目录自适应UKF逐行注释的说明运行结果完整代码各模块解释自适应UKF自适应无迹卡尔曼滤波(AdaptiveUnscentedKalmanFilter,AUKF)是一种用于状态估计的滤波算法。它是基于无迹卡尔曼滤波(UnscentedKalmanFilter,UKF)的改进算法。自适应无迹卡尔曼滤波在无迹......
  • 复合Simpson求积算法-C++【可直接复制粘贴/欢迎评论点赞】
    背景复合Simpson求积算法是基于Simpson1/3法则的推广。Simpson1/3法则是一种数值积分方法,它通过将积分区间划分为多个小区间,并在每个小区间上采用一个二次多项式来逼近原函数,进而求得积分的近似值。复合Simpson求积算法则是将这种方法应用于整个积分区间,即将整个区间划分为......
  • Gauss列主元素消去法-C++【可直接复制粘贴/欢迎评论点赞】
    Gauss列主元素消去法(也称为列主元Gauss消去法)是Gauss消去法的一种改进版本,主要用于求解线性方程组。在C++中实现时,它具有一些显著的优点和缺点,并且有着深厚的数学和计算背景。优点提高数值稳定性:列主元Gauss消去法通过在每一列中选择绝对值最大的元素作为主元,从而避免了在消......