⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clsline.cls

📁 办公流程定制
💻 CLS
📖 第 1 页 / 共 4 页
字号:
                End If
            Else
                mvarMidPoint(1).X = mvarRect(mvarBeginRect).EndPoint.X - 300
                mvarMidPoint(1).Y = mvarRect(mvarBeginRect).EndPoint.Y
                mvarMidPoint(2).Y = mvarMidPoint(1).Y
                mvarMidPoint(3).Y = mvarMidPoint(1).Y
                mvarMidPoint(2).X = (mvarMidPoint(1).X + mvarMidPoint(3).X) / 2
                If mvarMidPointCount > 3 Then
                    mvarMidPoint(4).Y = (mvarMidPoint(3).Y + mvarMidPoint(5).Y) / 2
                End If
            End If
        ElseIf mvarBeginRectPlace = "左" Then
            If mvarMidPoint(1).X = mvarMidPoint(2).X Then
                mvarMidPoint(1).Y = mvarRect(mvarBeginRect).EndPoint.Y
                mvarMidPoint(1).X = mvarRect(mvarBeginRect).EndPoint.X + 300
                mvarMidPoint(2).X = mvarMidPoint(1).X
                mvarMidPoint(3).X = mvarMidPoint(1).X
                mvarMidPoint(2).Y = (mvarMidPoint(1).Y + mvarMidPoint(3).Y) / 2
                If mvarMidPointCount > 3 Then
                    mvarMidPoint(4).X = (mvarMidPoint(3).X + mvarMidPoint(5).X) / 2
                End If
            Else
                mvarMidPoint(1).X = mvarRect(mvarBeginRect).EndPoint.X + 300
                mvarMidPoint(1).Y = mvarRect(mvarBeginRect).EndPoint.Y
                mvarMidPoint(2).Y = mvarMidPoint(1).Y
                mvarMidPoint(3).Y = mvarMidPoint(1).Y
                mvarMidPoint(2).X = (mvarMidPoint(1).X + mvarMidPoint(3).X) / 2
                If mvarMidPointCount > 3 Then
                    mvarMidPoint(4).Y = (mvarMidPoint(3).Y + mvarMidPoint(5).Y) / 2
                End If
            End If
        End If
    End If
    '处理结束节点
    If mvarEndRect > 0 Then
        If mvarEndPointPlace = "上" Then
            If mvarMidPoint(mvarMidPointCount).X = mvarMidPoint(mvarMidPointCount - 1).X Then
                mvarMidPoint(mvarMidPointCount).X = mvarRect(mvarEndRect).EndPoint.X
                mvarMidPoint(mvarMidPointCount).Y = mvarRect(mvarEndRect).EndPoint.Y - 400
                mvarMidPoint(mvarMidPointCount - 1).X = mvarMidPoint(mvarMidPointCount).X
                mvarMidPoint(mvarMidPointCount - 2).X = mvarMidPoint(mvarMidPointCount).X
                mvarMidPoint(mvarMidPointCount - 1).Y = (mvarMidPoint(mvarMidPointCount).Y + mvarMidPoint(mvarMidPointCount - 2).Y) / 2
                If mvarMidPointCount > 3 Then
                    mvarMidPoint(mvarMidPointCount - 3).X = (mvarMidPoint(mvarMidPointCount - 2).X + mvarMidPoint(mvarMidPointCount - 4).X) / 2
                End If
            Else
                mvarMidPoint(mvarMidPointCount).X = mvarRect(mvarEndRect).EndPoint.X
                mvarMidPoint(mvarMidPointCount).Y = mvarRect(mvarEndRect).EndPoint.Y - 400
                mvarMidPoint(mvarMidPointCount - 1).Y = mvarMidPoint(mvarMidPointCount).Y
                mvarMidPoint(mvarMidPointCount - 2).Y = mvarMidPoint(mvarMidPointCount).Y
                mvarMidPoint(mvarMidPointCount - 1).X = (mvarMidPoint(mvarMidPointCount).X + mvarMidPoint(mvarMidPointCount - 2).X) / 2
                If mvarMidPointCount > 3 Then
                    mvarMidPoint(mvarMidPointCount - 3).Y = (mvarMidPoint(mvarMidPointCount - 2).Y + mvarMidPoint(mvarMidPointCount - 4).Y) / 2
                End If
            End If
        ElseIf mvarEndPointPlace = "下" Then
            If mvarMidPoint(mvarMidPointCount).X = mvarMidPoint(mvarMidPointCount - 1).X Then
                mvarMidPoint(mvarMidPointCount).X = mvarRect(mvarEndRect).EndPoint.X
                mvarMidPoint(mvarMidPointCount).Y = mvarRect(mvarEndRect).EndPoint.Y + 400
                mvarMidPoint(mvarMidPointCount - 1).X = mvarMidPoint(mvarMidPointCount).X
                mvarMidPoint(mvarMidPointCount - 2).X = mvarMidPoint(mvarMidPointCount).X
                mvarMidPoint(mvarMidPointCount - 1).Y = (mvarMidPoint(mvarMidPointCount).Y + mvarMidPoint(mvarMidPointCount - 2).Y) / 2
                If mvarMidPointCount > 3 Then
                    mvarMidPoint(mvarMidPointCount - 3).X = (mvarMidPoint(mvarMidPointCount - 2).X + mvarMidPoint(mvarMidPointCount - 4).X) / 2
                End If
            Else
                mvarMidPoint(mvarMidPointCount).X = mvarRect(mvarEndRect).EndPoint.X
                mvarMidPoint(mvarMidPointCount).Y = mvarRect(mvarEndRect).EndPoint.Y + 400
                mvarMidPoint(mvarMidPointCount - 1).Y = mvarMidPoint(mvarMidPointCount).Y
                mvarMidPoint(mvarMidPointCount - 2).Y = mvarMidPoint(mvarMidPointCount).Y
                mvarMidPoint(mvarMidPointCount - 1).X = (mvarMidPoint(mvarMidPointCount).X + mvarMidPoint(mvarMidPointCount - 2).X) / 2
                If mvarMidPointCount > 3 Then
                    mvarMidPoint(mvarMidPointCount - 3).Y = (mvarMidPoint(mvarMidPointCount - 2).Y + mvarMidPoint(mvarMidPointCount - 4).Y) / 2
                End If
            End If
        ElseIf mvarEndPointPlace = "左" Then
            If mvarMidPoint(mvarMidPointCount).X = mvarMidPoint(mvarMidPointCount - 1).X Then
                mvarMidPoint(mvarMidPointCount).X = mvarRect(mvarEndRect).EndPoint.X - 300
                mvarMidPoint(mvarMidPointCount).Y = mvarRect(mvarEndRect).EndPoint.Y
                mvarMidPoint(mvarMidPointCount - 1).X = mvarMidPoint(mvarMidPointCount).X
                mvarMidPoint(mvarMidPointCount - 2).X = mvarMidPoint(mvarMidPointCount).X
                mvarMidPoint(mvarMidPointCount - 1).Y = (mvarMidPoint(mvarMidPointCount).Y + mvarMidPoint(mvarMidPointCount - 2).Y) / 2
                If mvarMidPointCount > 3 Then
                    mvarMidPoint(mvarMidPointCount - 3).X = (mvarMidPoint(mvarMidPointCount - 2).X + mvarMidPoint(mvarMidPointCount - 4).X) / 2
                End If
            Else
                mvarMidPoint(mvarMidPointCount).X = mvarRect(mvarEndRect).EndPoint.X - 300
                mvarMidPoint(mvarMidPointCount).Y = mvarRect(mvarEndRect).EndPoint.Y
                mvarMidPoint(mvarMidPointCount - 1).Y = mvarMidPoint(mvarMidPointCount).Y
                mvarMidPoint(mvarMidPointCount - 2).Y = mvarMidPoint(mvarMidPointCount).Y
                mvarMidPoint(mvarMidPointCount - 1).X = (mvarMidPoint(mvarMidPointCount).X + mvarMidPoint(mvarMidPointCount - 2).X) / 2
                If mvarMidPointCount > 3 Then
                    mvarMidPoint(mvarMidPointCount - 3).Y = (mvarMidPoint(mvarMidPointCount - 2).Y + mvarMidPoint(mvarMidPointCount - 4).Y) / 2
                End If
            End If
        ElseIf mvarEndPointPlace = "右" Then
            If mvarMidPoint(mvarMidPointCount).X = mvarMidPoint(mvarMidPointCount - 1).X Then
                mvarMidPoint(mvarMidPointCount).X = mvarRect(mvarEndRect).EndPoint.X + 300
                mvarMidPoint(mvarMidPointCount).Y = mvarRect(mvarEndRect).EndPoint.Y
                mvarMidPoint(mvarMidPointCount - 1).X = mvarMidPoint(mvarMidPointCount).X
                mvarMidPoint(mvarMidPointCount - 2).X = mvarMidPoint(mvarMidPointCount).X
                mvarMidPoint(mvarMidPointCount - 1).Y = (mvarMidPoint(mvarMidPointCount).Y + mvarMidPoint(mvarMidPointCount - 2).Y) / 2
                If mvarMidPointCount > 3 Then
                    mvarMidPoint(mvarMidPointCount - 3).X = (mvarMidPoint(mvarMidPointCount - 2).X + mvarMidPoint(mvarMidPointCount - 4).X) / 2
                End If
            Else
                mvarMidPoint(mvarMidPointCount).X = mvarRect(mvarEndRect).EndPoint.X + 300
                mvarMidPoint(mvarMidPointCount).Y = mvarRect(mvarEndRect).EndPoint.Y
                mvarMidPoint(mvarMidPointCount - 1).Y = mvarMidPoint(mvarMidPointCount).Y
                mvarMidPoint(mvarMidPointCount - 2).Y = mvarMidPoint(mvarMidPointCount).Y
                mvarMidPoint(mvarMidPointCount - 1).X = (mvarMidPoint(mvarMidPointCount).X + mvarMidPoint(mvarMidPointCount - 2).X) / 2
                If mvarMidPointCount > 3 Then
                    mvarMidPoint(mvarMidPointCount - 3).Y = (mvarMidPoint(mvarMidPointCount - 2).Y + mvarMidPoint(mvarMidPointCount - 4).Y) / 2
                End If
            End If
        End If
    End If
End Sub

Public Sub MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

    
End Sub
Public Sub MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim MidPoint As POINTAPI
Dim EndPoint As POINTAPI
Dim i, j, k, strLong As Integer
    EndPoint.X = X
    EndPoint.Y = Y
    mvarEndPoint = EndPoint
        If mvarEndPoint.X = mvarBeginPoint.X Or mvarBeginPoint.Y = mvarEndPoint.Y Then
            ReDim Preserve mvarMidPoint(3) '设置点的保存结构
            mvarMidPointCount = 3
            '============================1
            mvarMidPoint(1) = mvarBeginPoint
            '============================2
            MidPoint.X = (mvarEndPoint.X + mvarBeginPoint.X) / 2
            MidPoint.Y = (mvarEndPoint.Y + mvarBeginPoint.Y) / 2
            mvarMidPoint(2) = MidPoint
            '============================3
            mvarMidPoint(3) = mvarEndPoint
        Else
            If Button = 50 Then
                ReDim Preserve mvarMidPoint(7) '设置点的保存结构
                mvarMidPointCount = 7
                '============================1
                mvarMidPoint(1) = mvarBeginPoint
                '============================4
                MidPoint.X = (mvarEndPoint.X + mvarBeginPoint.X) / 2
                MidPoint.Y = (mvarEndPoint.Y + mvarBeginPoint.Y) / 2
                mvarMidPoint(4) = MidPoint
                '===========================3
                MidPoint.X = mvarMidPoint(4).X
                MidPoint.Y = mvarBeginPoint.Y
                mvarMidPoint(3) = MidPoint
                '============================5
                MidPoint.X = mvarMidPoint(4).X
                MidPoint.Y = mvarEndPoint.Y
                mvarMidPoint(5) = MidPoint
                '============================2
                MidPoint.X = (mvarBeginPoint.X + mvarMidPoint(3).X) / 2
                MidPoint.Y = mvarBeginPoint.Y
                mvarMidPoint(2) = MidPoint
                '============================6
                MidPoint.X = (mvarEndPoint.X + mvarMidPoint(5).X) / 2
                MidPoint.Y = mvarEndPoint.Y
                mvarMidPoint(6) = MidPoint
                '============================7
                mvarMidPoint(7) = mvarEndPoint
            ElseIf Button = 60 Then
                ReDim Preserve mvarMidPoint(5) '设置点的保存结构
                mvarMidPointCount = 5
                '============================1
                mvarMidPoint(1) = mvarBeginPoint
                '===========================3
                MidPoint.X = mvarBeginPoint.X
                MidPoint.Y = mvarEndPoint.Y
                mvarMidPoint(3) = MidPoint
                '============================2
                MidPoint.X = mvarBeginPoint.X
                MidPoint.Y = (mvarBeginPoint.Y + mvarMidPoint(3).Y) / 2
                mvarMidPoint(2) = MidPoint
                '============================4
                MidPoint.X = (mvarEndPoint.X + mvarMidPoint(3).X) / 2
                MidPoint.Y = mvarEndPoint.Y
                mvarMidPoint(4) = MidPoint
                '============================5
                mvarMidPoint(5) = mvarEndPoint
            ElseIf Button = 70 Then
                ReDim Preserve mvarMidPoint(5) '设置点的保存结构
                mvarMidPointCount = 5
                '============================1
                mvarMidPoint(1) = mvarBeginPoint
                '===========================3
                MidPoint.X = mvarEndPoint.X
                MidPoint.Y = mvarBeginPoint.Y
                mvarMidPoint(3) = MidPoint
                '============================2
                MidPoint.X = (mvarBeginPoint.X + mvarMidPoint(3).X) / 2
                MidPoint.Y = mvarBeginPoint.Y
                mvarMidPoint(2) = MidPoint
                '============================4
                MidPoint.X = mvarEndPoint.X
                MidPoint.Y = (mvarEndPoint.Y + mvarMidPoint(3).Y) / 2
                mvarMidPoint(4) = MidPoint
                '============================5
                mvarMidPoint(5) = mvarEndPoint
            Else
                ReDim Preserve mvarMidPoint(7) '设置点的保存结构
                mvarMidPointCount = 7
                '============================1
                mvarMidPoint(1) = mvarBeginPoint
                '============================4
                MidPoint.X = (mvarEndPoint.X + mvarBeginPoint.X) / 2
                MidPoint.Y = (mvarEndPoint.Y + mvarBeginPoint.Y) / 2
                mvarMidPoint(4) = MidPoint
            
                '============================2
                MidPoint.X = mvarBeginPoint.X
                MidPoint.Y = (mvarEndPoint.Y - mvarBeginPoint.Y) / 4 + mvarBeginPoint.Y
                mvarMidPoint(2) = MidPoint
                '===========================3
                MidPoint.X = mvarBeginPoint.X
                MidPoint.Y = mvarMidPoint(4).Y
                mvarMidPoint(3) = MidPoint
                '============================5
                MidPoint.X = mvarEndPoint.X
                MidPoint.Y = mvarMidPoint(4).Y
                mvarMidPoint(5) = MidPoint
                '============================6
                MidPoint.X = mvarEndPoint.X
                MidPoint.Y = (mvarEndPoint.Y - mvarBeginPoint.Y) * 3 / 4 + mvarBeginPoint.Y
                mvarMidPoint(6) = MidPoint
                '============================7
                mvarMidPoint(7) = mvarEndPoint
            End If
    
        '===========================画点
        DrawPoint
        mvarSetActiveFlag = True
        '===========================画线
        mvarDrawFrm.DrawMode = 13
        mvarDrawFrm.DrawWidth = 1
        mvarDrawFrm.DrawStyle = 0
        mvarDrawFrm.FillStyle = 0
        If mvarLineType = 4 Then '回退线
            For i = 2 To mvarMidPointCount
                mvarDrawFrm.Line (mvarMidPoint(i).X, mvarMidPoint(i).Y)-(mvarMidPoint(i - 1).X, mvarMidPoint(i - 1).Y), RGB(255, 0, 0)
            Next i
        ElseIf mvarLineType = 3 Then '直流线
            For i = 2 To mvarMidPointCount
                mvarDrawFrm.Line (mvarMidPoint(i).X, mvarMidPoint(i).Y)-(mvarMidPoint(i - 1).X, mvarMidPoint(i - 1).Y), RGB(0, 255, 0)
            Next i
        Else '分流线
            For i = 2 To mvarMidPointCount
                mvarDrawFrm.Line (mvarMidPoint(i).X, mvarMidPoint(i).Y)-(mvarMidPoint(i - 1).X, mvarMidPoint(i - 1).Y), RGB(0, 0, 255)
            Next i
        End If
        
        i = (mvarMidPointCount + 1) / 2
        k = Len(mvarLineName)
        strLong = k
        For j = 1 To k
            If Asc(Mid(mvarLineName, j, 1)) < 0 Then
                strLong = strLong + 1
            End If
        Next j
        TextOut mvarDrawFrm.hdc, mvarMidPoint(i).X / 15 - strLong * 3, mvarMidPoint(i).Y / 15 - 5, mvarLineName, strLong
        
    End If
End Sub

Public Function ExistState(X As Single, Y As Single) As Integer
Dim i As Integer
Dim X1, X2, Y1, Y2 As Single
    ExistState = -1
    For i = 1 To mvarMidPointCount  '在点上
        X1 = mvarMidPoint(i).X
        Y1 = mvarMidPoint(i).Y
        If X < X1 + 50 And X > X1 - 50 And Y < Y1 + 50 And Y > Y1 - 50 Then
            ExistState = i
            If mvarSetActiveFlag = False Then
                DrawPoint
                mvarSetActiveFlag = True
            End If
            Exit Function
        End If
    Next i
        For i = 2 To mvarMidPointCount  '在线上
            X1 = mvarMidPoint(i - 1).X
            Y1 = mvarMidPoint(i - 1).Y
            X2 = mvarMidPoint(i).X
            Y2 = mvarMidPoint(i).Y
            If X1 = X2 Then
                If X < X1 + 50 And X > X1 - 50 Then
                    If Y2 > Y1 Then
                        If Y < Y2 And Y > Y1 Then
                            ExistState = 0
                            If mvarSetActiveFlag = False Then
                                DrawPoint
                                mvarSetActiveFlag = True
                            End If
                            Exit Function
                        End If
                    Else
                        If Y < Y1 And Y > Y2 Then
                            ExistState = 0
                            If mvarSetActiveFlag = False Then
                                DrawPoint
                                mvarSetActiveFlag = True
                            End If
                            Exit Function
                        End If
                    End If
                End If
            ElseIf Y1 = Y2 Then
                If Y < Y1 + 50 And Y > Y1 - 50 Then
                    If X2 > X1 Then
                        If X < X2 And X > X1 Then
                            ExistState = 0
                            If mvarSetActiveFlag = False Then
                                DrawPoint
                                mvarSetActiveFlag = True
                            End If

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -