一个简单的例子:
先在picturebox里添加一个shape控件,然后:
Dim x1 As Long
Dim y1 As Long
Dim x2 As Long
Dim y2 As Long
Dim DOING As Boolean
Private Sub Command1_Click()
If Shape1.UBound = 0 Then
Shape1(Shape1.UBound).Visible = False
Else
Unload Shape1(Shape1.UBound)
End If
End Sub
Private Sub Command2_Click()
Picture1.Picture = LoadPicture("C:\ABC.jpg")
End Sub
Private Sub Form_Load()
Shape1(0).Visible = False
Shape1(0).Shape = 3
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
x1 = X
y1 = Y
If Shape1(0).Visible = True Then
Load Shape1(Shape1.UBound + 1)
End If
DOING = True
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If DOING = True Then
R = Sqr((X - x1) ^ 2 + (Y - y1) ^ 2)
Label5.Caption = R
Shape1(Shape1.UBound).Visible = True
Shape1(Shape1.UBound).Width = 2 * R
Shape1(Shape1.UBound).Height = 2 * R
Shape1(Shape1.UBound).Top = y1 - R
Shape1(Shape1.UBound).Left = x1 - R
End If
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
DOING = False
End Sub
'startX,startY是鼠标按下时的坐标,也就是圆心坐标,endX,endY是鼠标释放时的坐标,R是半径
Dim StartX As Integer
Dim StartY As Integer
Dim EndX As Integer
Dim EndY As Integer
Dim R As Double
Private Sub Form_Load()
Me.DrawMode = 10
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
StartX = X
StartY = Y
EndX = X
EndY = Y
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
R = Sqr((EndX - StartX) ^ 2 + (EndY - StartY) ^ 2)
Circle (StartX, StartY), R
EndX = X
EndY = Y
R = Sqr((EndX - StartX) ^ 2 + (EndY - StartY) ^ 2)
Circle (StartX, StartY), R
End If
End Sub
'Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
' EndX = X
' EndY = Y
' R = Sqr((EndX - StartX) ^ 2 + (EndY - StartY) ^ 2)
' Circle (StartX, StartY), R, RGB(111, 9, 9)
'End Sub
'startX,startY是鼠标按下时的坐标,也就是圆心坐标,endX,endY是鼠标释放时的坐标,R是半径
Dim StartX As Integer
Dim StartY As Integer
Dim EndX As Integer
Dim EndY As Integer
Dim R As Double
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
StartX = X
StartY = Y
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
EndX = X
EndY = Y
R = Sqr((EndX - StartX) ^ 2 + (EndY - StartY) ^ 2)
Circle (StartX, StartY), R
End Sub