vb中如何获取鼠标的坐标

bh7578 2009-04-29 08:34:30
在vb中我画了一个picturebox,想实现当鼠标移动(不发生单击之类的任何事件)到picturebox中时就在鼠标旁边显示鼠标在此图片框中的坐标,并能随着鼠标的移动而变化。想了好久没头绪,不知道如何判断鼠标移动到了picturebox的范围内,还有如何获取鼠标在picturebox中的坐标,小弟对vb不是很懂,望各位大侠指点一二,能给源码最好,烦的话给个大致思路也行,我自己再琢磨琢磨,谢谢了~~~
...全文
1103 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiangjiangp 2012-08-03
  • 打赏
  • 举报
回复
受教,刚学vb,知道了很多了
zdingyun 2009-04-29
  • 打赏
  • 举报
回复
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.Visible = False
Label2.Visible = False
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.Visible = True
Label2.Visible = True
Label1.Left = X + 100
Label2.Left = X + 100
Label1.Top = Y
Label2.Top = Y + 200
Label1.Caption = "X=" & X
Label2.Caption = "Y=" & Y
End Sub
bh7578 2009-04-29
  • 打赏
  • 举报
回复
突然发现,我怎么这么笨啊........
我改了下,有个问题,有时鼠标移出了picturebox,可label1依然在图片框中显示,怎么让它当鼠标移出picturebox时隐藏?我写的代码如下(窗体和图片框ScaleMode属性为3-pixel):
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.Left = X
Label1.Top = Y - 10
Label1.Caption = Str(X) + "," + Str(Y)
End Sub
zdingyun 2009-04-29
  • 打赏
  • 举报
回复
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.Left = X + 100
Label2.Left = X + 100
Label1.Top = Y
Label2.Top = Y + 200
Label1.Caption = "X=" & X
Label2.Caption = "Y=" & Y
End Sub
嗷嗷叫的老马 2009-04-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bh7578 的回复:]
怎么让它当鼠标移出picturebox时隐藏?
[/Quote]
在其父容器的鼠标事件里隐藏.

如楼上的代码.
bh7578 2009-04-29
  • 打赏
  • 举报
回复
谢谢zdingyun了,受教了~~~
现在利用你的方法我写了一个程序,想在图片框中移动时显示鼠标的坐标,同时鼠标在图片框中单击获得几个点,并连起来形成一条折线,不知道为什么鼠标在图片框中移动能显示坐标,但单击时就是不画直线,是不是当鼠标在图片框中时一直在执行Picture1_MouseMove事件而Picture1_MouseDown事件没有执行?这要怎么解决?本来想等这个实现了还想做一下选中折线中的某个顶点,拖动这个顶点,同时显示变化的折线,看来不简单....
这是我写的代码,望指正~!
Dim a(10) As Integer, b(10) As Integer
Dim t As Integer

Private Sub Form_Load()
t = 0
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.Visible = False
End Sub


Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Cls
a(t) = X: b(t) = Y
t = t + 1
For i = 0 To t - 2
Picture1.Line (a(i), b(i))-(a(i + 1), b(i + 1))
Next

End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.Visible = True
Label1.Left = X
Label1.Top = Y - 10
Label1.Caption = Str(X) + "," + Str(Y)
End Sub

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧