十字线要一直跟着鼠标,在PICTURE里面始终都只显示一对儿十字线,而且不能把PICTURE里面已经使用程序画好的线给抹掉!
谢谢!!
谢谢!!
解决方案 »
- VBA创建菜单并指定宏代码
- 在网络带宽低的情况下的传输问题~~讨论
- 用SQL语句查询平均6秒,改用存储语句平均5秒,这样算有效果吗?
- VB+sqlserver2000 要通过ADSL读取 sql数据库数据用什么方式比较快.
- 急寻 Crystal Report Designer Component License!
- VB中没有BETWEEN函数怎么办
- 浏览记录的问题,大家指点!
- vb+SQL 的连接问题
- 如何用API函数获得应用程序工具栏的句柄,并隐藏工具栏?(在线等待!谢谢!)
- ★★★ 谁有将Word文件存到数据库中成功的例子!★★★
- 为什么VB调用word时只能生成一次,大家帮我看看?
- 求助:有关picturebox打印的问题
Private Old_X As Single
Private Old_Y As Single
Private isMouseDown As Boolean
Private Box_X0 As Single
Private Box_Y0 As Single
Private Box_X1 As Single
Private Box_Y1 As Single
Private PenColor As Long
Private CrossColor As LongPrivate Sub Form_Load()
CrossColor = QBColor(8)
PenColor = QBColor(15)
picDraw.DrawMode = vbXorPen
picDraw.MouseIcon = LoadPicture(App.Path & "\no.cur")
picDraw.MousePointer = vbCustom
isMouseDown = False
Box_X0 = Box_X1 = Box_Y0 = Box_Y1 = 0
End SubPrivate Sub picDraw_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If isMouseDown = True Then
''先前已经用鼠标定义了一个点
Box_X1 = X
Box_Y1 = Y
isMouseDown = False
picDraw.DrawMode = vbCopyPen
picDraw.Line (Box_X0, Box_Y0)-(Box_X1, Box_Y1), PenColor, B
picDraw.DrawMode = vbXorPen
''画一个光标
picDraw.Line (0, Y)-(picDraw.ScaleWidth, Y), CrossColor
picDraw.Line (X, 0)-(X, picDraw.ScaleHeight), CrossColor
Old_X = X
Old_Y = Y
Else
''定义了一个矩形的第一个顶点,则擦除光标
picDraw.Line (0, Y)-(picDraw.ScaleWidth, Y), CrossColor
picDraw.Line (X, 0)-(X, picDraw.ScaleHeight), CrossColor
Box_X0 = X
Box_Y0 = Y
isMouseDown = True
End If
End SubPrivate Sub picDraw_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If isMouseDown = True Then
''拖动鼠标来定义矩形的另外一个顶点,
'此时擦除前一个矩形,绘制新的矩形
picDraw.Line (Box_X0, Box_Y0)-(Old_X, Old_Y), PenColor, B
picDraw.Line (Box_X0, Box_Y0)-(X, Y), PenColor, B
Else
''消除旧光标线
picDraw.Line (0, Old_Y)-(picDraw.ScaleWidth, Old_Y), CrossColor
picDraw.Line (Old_X, 0)-(Old_X, picDraw.ScaleHeight), CrossColor
''画新的光标线
picDraw.Line (0, Y)-(picDraw.ScaleWidth, Y), CrossColor
picDraw.Line (X, 0)-(X, picDraw.ScaleHeight), CrossColor
End If
Old_X = X
Old_Y = Y
End Sub
Private Sub Form_Load()
Form1.Controls.Add "VB.line", "line1", Picture1
Form1.Controls.Add "VB.line", "line2", Picture1
Form1!Line1.BorderColor = 0
Form1!Line1.Visible = True
Form1!Line2.BorderColor = 0
Form1!Line2.Visible = True
End SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Form1!Line1.X1 = 0
Form1!Line1.Y1 = Y
Form1!Line1.X2 = Picture1.Width
Form1!Line1.Y2 = Y
Form1!Line2.X1 = X
Form1!Line2.Y1 = 0
Form1!Line2.X2 = X
Form1!Line2.Y2 = Picture1.Height
End Sub
Me.MousePointer = 1
End SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.MousePointer = 2
End Sub