satriano17
Gebruiker
- Lid geworden
- 30 sep 2012
- Berichten
- 331
Dag
Met deze code kan ik zonder probleem lijnen trekken door het linkerknop van de mouse te drukken en trekken op een picturebox
Alles werkt perfect. Ik wou nu dat , bij het drukken van de rechter knop van de mouse de laatste aangebracht lijn te wissen. Een soort van undo dus.
Hoe kan ik doen? Met welke commando en waar?
Dank u bij voorbaat
Met deze code kan ik zonder probleem lijnen trekken door het linkerknop van de mouse te drukken en trekken op een picturebox
Alles werkt perfect. Ik wou nu dat , bij het drukken van de rechter knop van de mouse de laatste aangebracht lijn te wissen. Een soort van undo dus.
Hoe kan ik doen? Met welke commando en waar?
Dank u bij voorbaat
Code:
Private beginpunt As Boolean
Private startX As Single
Private startY As Single
Private endX As Single
Private endY As Single
Private Type linemouse
x1 As Single
y1 As Single
x2 As Single
y2 As Single
End Type
Private arraylinesMouse() As linemouse
Private Sub Form_Load()
ReDim Preserve arraylinesMouse(0)
End Sub
Private Sub Picture1_Click()
If beginpunt = False Then
Picture1.MousePointer = 2
beginpunt = True
Else
Picture1.MousePointer = 1
beginpunt = False
ReDim Preserve arraylinesMouse(UBound(arraylinesMouse) + 1)
Dim l As linemouse
l.x1 = endX
l.y1 = endY
l.x2 = startX
l.y2 = startY
arraylinesMouse(UBound(arraylinesMouse)) = l
End If
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If beginpunt = False Then
startX = X
startY = Y
Else
'refresh PictureBox
Picture1.Refresh
'refresh array graphic
'...
'refresh array lines
Dim i As Integer
For i = 0 To UBound(arraylinesMouse)
With arraylinesMouse(i)
Picture1.Line (.x1, .y1)-(.x2, .y2), vbBlack
End With
Next i
'nieuwe lijn (tijdelijk line)
Picture1.Line (X, Y)-(startX, startY), vbBlack
endX = X
endY = Y
End If
End Sub
Laatst bewerkt: