📄 clsrect.cls
字号:
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 + -