Picturebox用PSet方法画曲线,鼠标移动快,线条就不连贯了,如何解决
Picturebox用PSet方法画曲线,鼠标移动快,线条就不连贯了,怎么解决?
mask是Picturebox控件
Private Sub mask_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
md = True
End Sub
Private Sub mask_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'鼠标移动快,线条就不连贯了,怎么解决?
If md Then
mask.PSet (X, Y)
End If
End Sub
Private Sub mask_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
md = False
End Sub
------解决方案--------------------
Option Explicit
Dim flag As Boolean, flag2 As Integer, myX As Integer, myY As Integer
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
flag = True: flag2 = 1
myX = X
myY = Y
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If flag Then
If flag2 = 1 Then
flag2 = flag2 + 1
Picture1.Line (myX, myY)-(X, Y), vbGreen
Else
Picture1.Line -(X, Y), vbGreen
End If
End If
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
flag = False: flag2 = 1
End Sub
mask是Picturebox控件
Private Sub mask_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
md = True
End Sub
Private Sub mask_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'鼠标移动快,线条就不连贯了,怎么解决?
If md Then
mask.PSet (X, Y)
End If
End Sub
Private Sub mask_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
md = False
End Sub
------解决方案--------------------
Option Explicit
Dim flag As Boolean, flag2 As Integer, myX As Integer, myY As Integer
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
flag = True: flag2 = 1
myX = X
myY = Y
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If flag Then
If flag2 = 1 Then
flag2 = flag2 + 1
Picture1.Line (myX, myY)-(X, Y), vbGreen
Else
Picture1.Line -(X, Y), vbGreen
End If
End If
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
flag = False: flag2 = 1
End Sub