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

📄 clsrect.cls

📁 办公流程定制
💻 CLS
📖 第 1 页 / 共 2 页
字号:
    End If
    hDestDC = mvarDrawFrm.hdc
    hSrcDC = picCache.hdc
    
    lResult = BitBlt(hDestDC, X1 / 15, _
        Y1 / 15, _
        600 / 15, _
        800 / 15 + 2, _
        hSrcDC, 0, 0, SRCCOPY)
    '=============================
    mvarDrawFrm.Line (X2, Y2)-(X2, Y1), RGB(150, 150, 250)
    mvarDrawFrm.Line (X2, Y2)-(X1, Y2), RGB(150, 150, 150)
    mvarDrawFrm.Line (X1, Y1)-(X1, Y2), RGB(220, 220, 220)
    mvarDrawFrm.Line (X1, Y1)-(X2, Y1), RGB(220, 220, 220)
    
    k = Len(tmpStr)
    strLong = k
    For j = 1 To k
        If Asc(Mid(tmpStr, j, 1)) < 0 Then
            strLong = strLong + 1
        End If
    Next j
    If strLong > 20 Then strLong = 20
    If mvarRectNo = 1 Then
        TextOut mvarDrawFrm.hdc, mvarEndPoint.X / 15 - strLong * 3, mvarEndPoint.Y / 15 + 30, tmpStr, strLong
    Else
        TextOut mvarDrawFrm.hdc, mvarEndPoint.X / 15 - strLong * 3, mvarEndPoint.Y / 15 + 30, tmpStr, strLong
    End If
End Sub
Public Sub DelRect()
Dim X1, X2, Y1, Y2 As Long
    SetActiveState (False)
End Sub
Public Sub MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim X1, X2, Y1, Y2 As Long
    SetActiveState (False)
    mvarEndPoint.X = X
    mvarEndPoint.Y = Y
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 X1, X2, Y1, Y2 As Long
Dim EndPoint As POINTAPI
    EndPoint.X = X
    EndPoint.Y = Y
    
    '==========================
    mvarEndPoint = EndPoint
    mvarDrawFrm.DrawMode = 7
    mvarDrawFrm.DrawWidth = 1
    mvarDrawFrm.DrawStyle = 0
    mvarDrawFrm.FillStyle = 0
    '============================
    Dim lResult As Long
    Dim hDestDC As Long
    Dim hSrcDC As Long
    
    hDestDC = mvarDrawFrm.hdc
    hSrcDC = picCache.hdc

    lResult = BitBlt(hDestDC, (X - 300) / 15, _
        (Y - 400) / 15, _
        600 / 15, _
        800 / 15, _
        hSrcDC, 0, 0, SRCCOPY)
    '============================左上
    X1 = X - 330
    X2 = X - 270
    Y1 = Y - 440
    Y2 = Y - 360
    mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B

    '============================左下
    X1 = X - 330
    X2 = X - 270
    Y1 = Y + 440
    Y2 = Y + 360
    mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
    
    '===========================右上
    X1 = X + 330
    X2 = X + 270
    Y1 = Y + 440
    Y2 = Y + 360
    mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B

    '============================右下
    X1 = X + 330
    X2 = X + 270
    Y1 = Y - 440
    Y2 = Y - 360
    mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
       
    '============================左中
    X1 = X - 330
    X2 = X - 270
    Y1 = Y - 40
    Y2 = Y + 40
    mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
    
    '============================右中
    X1 = X + 330
    X2 = X + 270
    Y1 = Y - 40
    Y2 = Y + 40
    mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
    
    '============================上中
    X1 = X - 30
    X2 = X + 30
    Y1 = Y - 440
    Y2 = Y - 360
    mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
    
    '============================下中
    X1 = X - 30
    X2 = X + 30
    Y1 = Y + 440
    Y2 = Y + 360
    mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
    
    '============================
    mvarDrawFrm.DrawMode = 13
    mvarDrawFrm.DrawWidth = 1
    mvarDrawFrm.DrawStyle = 0
    mvarDrawFrm.FillStyle = 0
    X1 = X - 300
    X2 = X + 300
    Y1 = Y - 400
    Y2 = Y + 400

    mvarDrawFrm.Line (X2, Y2)-(X2, Y1), RGB(100, 100, 100)
    mvarDrawFrm.Line (X2, Y2)-(X1, Y2), RGB(100, 100, 100)
    mvarDrawFrm.Line (X1, Y1)-(X1, Y2), RGB(100, 100, 100)
    mvarDrawFrm.Line (X1, Y1)-(X2, Y1), RGB(100, 100, 100)

    '============================
    If mvarRectNo = 1 Then
        TextOut mvarDrawFrm.hdc, mvarEndPoint.X / 15 - 12, mvarEndPoint.Y / 15 + 10, "开始", 4
    Else
        TextOut mvarDrawFrm.hdc, mvarEndPoint.X / 15 - 15, mvarEndPoint.Y / 15 + 10, "节点" & mvarRectNo, Len(CStr(mvarRectNo)) + 4
    End If
    '=============================
    mvarSetActiveFlag = True
End Sub

Public Function ExistState(X As Single, Y As Single) As Boolean
    If (mvarEndPoint.X - 300) < X And X < (mvarEndPoint.X + 300) And (mvarEndPoint.Y - 400) < Y And Y < (mvarEndPoint.Y + 400) Then
        ExistState = True
        SetActiveState (True)
    Else
        ExistState = False
        SetActiveState (False)
    End If
End Function
Public Function LinkPointState(X As Single, Y As Single) As Integer
    LinkPointState = 0
    If (mvarEndPoint.X - 100) < X And X < (mvarEndPoint.X + 100) And (mvarEndPoint.Y - 500) < Y And Y < (mvarEndPoint.Y - 300) Then
        LinkPointState = 1  '上连接点
    ElseIf (mvarEndPoint.X - 100) < X And X < (mvarEndPoint.X + 100) And (mvarEndPoint.Y + 300) < Y And Y < (mvarEndPoint.Y + 500) Then
        LinkPointState = 2  '下连接点
    ElseIf (mvarEndPoint.X - 400) < X And X < (mvarEndPoint.X - 200) And (mvarEndPoint.Y - 100) < Y And Y < (mvarEndPoint.Y + 100) Then
        LinkPointState = 3  '左连接点
    ElseIf (mvarEndPoint.X + 200) < X And X < (mvarEndPoint.X + 400) And (mvarEndPoint.Y - 100) < Y And Y < (mvarEndPoint.Y + 100) Then
        LinkPointState = 4  '右连接点
    End If
End Function
Private Sub SetActiveState(Flag As Boolean)
Dim X1, X2, Y1, Y2, X, Y As Long
Dim EndPoint As POINTAPI
X = mvarEndPoint.X
Y = mvarEndPoint.Y
If Flag = True Then
    If mvarSetActiveFlag = False Then
        mvarSetActiveFlag = True
        '==========================
        mvarDrawFrm.DrawMode = 7
        mvarDrawFrm.DrawWidth = 1
        mvarDrawFrm.DrawStyle = 0
        mvarDrawFrm.FillStyle = 0
        '============================左上
        X1 = X - 330
        X2 = X - 270
        Y1 = Y - 440
        Y2 = Y - 360
        mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
    
        '============================左下
        X1 = X - 330
        X2 = X - 270
        Y1 = Y + 440
        Y2 = Y + 360
        mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
        
        '===========================右上
        X1 = X + 330
        X2 = X + 270
        Y1 = Y + 440
        Y2 = Y + 360
        mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
    
        '============================右下
        X1 = X + 330
        X2 = X + 270
        Y1 = Y - 440
        Y2 = Y - 360
        mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
        
        '============================中心
'        X1 = X - 50
'        X2 = X + 50
'        Y1 = Y - 50
'        Y2 = Y + 50
'        mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
        
        '============================左中
        X1 = X - 330
        X2 = X - 270
        Y1 = Y - 40
        Y2 = Y + 40
        mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
        
        '============================右中
        X1 = X + 330
        X2 = X + 270
        Y1 = Y - 40
        Y2 = Y + 40
        mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
        
        '============================上中
        X1 = X - 30
        X2 = X + 30
        Y1 = Y - 440
        Y2 = Y - 360
        mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
        
        '============================下中
        X1 = X - 30
        X2 = X + 30
        Y1 = Y + 440
        Y2 = Y + 360
        mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
    End If
Else
    If mvarSetActiveFlag = True Then
        mvarSetActiveFlag = False
        '==========================
        mvarDrawFrm.DrawMode = 7
        mvarDrawFrm.DrawWidth = 1
        mvarDrawFrm.DrawStyle = 0
        mvarDrawFrm.FillStyle = 0
        '============================左上
        X1 = X - 330
        X2 = X - 270
        Y1 = Y - 440
        Y2 = Y - 360
        mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
    
        '============================左下
        X1 = X - 330
        X2 = X - 270
        Y1 = Y + 440
        Y2 = Y + 360
        mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
        
        '===========================右上
        X1 = X + 330
        X2 = X + 270
        Y1 = Y + 440
        Y2 = Y + 360
        mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
    
        '============================右下
        X1 = X + 330
        X2 = X + 270
        Y1 = Y - 440
        Y2 = Y - 360
        mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
        
        '============================中心
'        X1 = X - 30
'        X2 = X + 30
'        Y1 = Y - 40
'        Y2 = Y + 40
'        mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
        
        '============================左中
        X1 = X - 330
        X2 = X - 270
        Y1 = Y - 40
        Y2 = Y + 40
        mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
        
        '============================右中
        X1 = X + 330
        X2 = X + 270
        Y1 = Y - 40
        Y2 = Y + 40
        mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
        
        '============================上中
        X1 = X - 30
        X2 = X + 30
        Y1 = Y - 440
        Y2 = Y - 360
        mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
        
        '============================下中
        X1 = X - 30
        X2 = X + 30
        Y1 = Y + 440
        Y2 = Y + 360
        mvarDrawFrm.Line (X1, Y1)-(X2, Y2), RGB(0, 200, 0), B
    End If
End If
End Sub

Public Sub Click()

End Sub
Private Sub Class_Initialize()
mvarMidPointCount = 0
mvarClsName = "RECT"
End Sub

⌨️ 快捷键说明

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