我现在做一个电路模拟软件,现在在电器元件的两旁分别设置一个图片框,上面就画了一个小圆点(半径70twip)。现在想要实现:
当用户在其中一个图片框上按下鼠标并开始拖到另一个图片框上松开鼠标时,就把这两个图片框用线连接起来,最后看用户的连接是否正确。
对于在一个窗体上按下鼠标开始画线,直到松开鼠标,可以实现。但是下面的代码就不能画,原因是什么?该怎么修改?
其中picCir是图片框数组,beginL是表示开始画线的逻辑变量。
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If beginL = True Then
DrawWidth = 2
Form1.Line (CurrentX, CurrentY)-(X, Y), vbBlack
End If
End SubPrivate Sub picCir_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
beginL = True
Form1.CurrentX = picCir(Index).Left
Form1.CurrentY = picCir(Index).Top
End If
End Sub
Private Sub picCir_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
beginL = False
End IfEnd Sub
当用户在其中一个图片框上按下鼠标并开始拖到另一个图片框上松开鼠标时,就把这两个图片框用线连接起来,最后看用户的连接是否正确。
对于在一个窗体上按下鼠标开始画线,直到松开鼠标,可以实现。但是下面的代码就不能画,原因是什么?该怎么修改?
其中picCir是图片框数组,beginL是表示开始画线的逻辑变量。
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If beginL = True Then
DrawWidth = 2
Form1.Line (CurrentX, CurrentY)-(X, Y), vbBlack
End If
End SubPrivate Sub picCir_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
beginL = True
Form1.CurrentX = picCir(Index).Left
Form1.CurrentY = picCir(Index).Top
End If
End Sub
Private Sub picCir_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
beginL = False
End IfEnd Sub
解决方案 »
- VB6.0与USB连续通讯的问题,求助中
- 如何将存储在Byte数组中的数据,增添至SQL server表中?
- 关闭程序再打开程序怎么实现?
- 谁知道在adodb和datagrid配合的时候怎么让datagrid只显示最后一条记录,代码给我
- 关于提取网页内容
- 关于DBcon.begintrans,DBcon.committrans
- A4纸横向打印问题
- 【CSDN】【如何控制窗体缩放到一定大小后不能再缩小】
- Recordset.Find 查找条件中,用'Like'与'='和结果怎么是一样的?,为什么'Like'不支持模糊查找
- 关于Crystal Report的难题!
- 续《vb md5加密exe文件原代码,高分送顶者!》MD5类第四部分
- vb ado 连接 access2003
而且你也想得到嘛,根本就是两个控件,怎么可能是一样的?两个人都叫张三,身份证号码不同,你觉得那是同一个人吗?windows事件的传递,不是根据名字来的,名字只不过是编程时方便记忆的符号,两个对象就有两个对象的id,虽然看上去名字相同,不过是vb做了处理,其实是不同的。