请教各位高手:我用VB6.0 做了一个form,做成了全透明模式.我在上面画了很多的线条,form的背景图是一张有各种颜色的图片.
现在我想开发橡皮擦功能,参考了网上VB做橡皮擦的解决办法,都是建议使用背景色来画线来实现擦除的目的;而我这种情况是无法使用的,因为如果用背景色,就会在背景图上画出背景色的线条.请问有什么好的解决办法吗?
现在我想开发橡皮擦功能,参考了网上VB做橡皮擦的解决办法,都是建议使用背景色来画线来实现擦除的目的;而我这种情况是无法使用的,因为如果用背景色,就会在背景图上画出背景色的线条.请问有什么好的解决办法吗?
Option ExplicitPrivate bOnDrag As Boolean
Private X1 As Long
Private Y1 As Long
Private X2 As Long
Private Y2 As LongPrivate Sub Form_Load()
Me.ScaleMode = vbPixels
Me.AutoRedraw = True
Me.Line (50, 50)-(ScaleWidth - 50, ScaleHeight - 50), vbYellow, BF
Me.FillStyle = vbFSSolid
Me.FillColor = vbRed
Me.Circle (100, 100), 80, vbRed
End SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then
X1 = X
Y1 = Y
X2 = X
Y2 = Y
Me.DrawMode = vbNotXorPen
Me.Line (X1, Y1)-(X2, Y2)
bOnDrag = True
End If
End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If bOnDrag Then
Me.Line (X1, Y1)-(X2, Y2)
X2 = X
Y2 = Y
Me.Line (X1, Y1)-(X2, Y2)
End If
End SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If (Button = vbLeftButton) And bOnDrag Then
bOnDrag = False
Me.Line (X1, Y1)-(X2, Y2)
Me.DrawMode = vbCopyPen
Me.Line (X1, Y1)-(X2, Y2)
End If
End Sub
用bitblt函数把背景图再涂上,不 就是橡皮擦了.