贡献一个画图时显示鼠标痕迹的简单方法,希望能对大家有所帮助
以前用VB做过三个月的图形,但是一个很简单的问题始终没有解决,就是在用鼠标选择的时候如何能显示鼠标所选择的区域痕迹?起初使用画线和檫除的方法,但是效果不理想,一个是抖动,另一个是原图有些也被檫了。
今天又要解决这个难题了,想用DrawMode,可不行。但下面的一个Shape引起了我的注意。
后来采用Shape控件来解决这个问题,希望能对大家有所帮助。
2004/10/27 By Locket
1,在PICTURE BOX上放一个SHAP控件shp,在FORM_LOAD里设置shp.visible = false
2,在picture_mousedown里
shp.visible = true
shp.width = 0
shp.height = 0
记录下x和y,保存在m_OldX 和 m_OldY里
3,在picture_mousemove里调用
Private Sub ShowDrawShap(x, y)
'四个方向 用shp.move 也可以实现
If (x >= m_OldX) And (y >= m_OldY) Then '右下方
shp.Top = m_OldY
shp.Left = m_OldX
ElseIf (x >= m_OldX) And (y < m_OldY) Then '右上方
shp.Top = y
shp.Left = m_OldX
ElseIf (x < m_OldX) And (y < m_OldY) Then '左上方
shp.Top = y
shp.Left = x
ElseIf (x < m_OldX) And (y >= m_OldY) Then '左下方
shp.Top = m_OldY
shp.Left = x
End If
shp.Width = Abs(x - m_OldX)
shp.Height = Abs(y - m_OldY)
End Sub
4,在picture_mouseup里
shp.visible = false
shp.width = 0
shp.height = 0