主题:[讨论]如何获取新坐标系中的鼠标的坐标
loongchina
[专家分:90] 发布于 2008-04-11 22:51:00
请问各位大侠,怎么样在vb 中 获取用户坐标系统中当前鼠标的坐标?
回复列表 (共4个回复)
沙发
一江秋水 [专家分:9680] 发布于 2008-04-12 17:56:00
在控件的 MouseMove 事件中应该可以获取
例如:你的pic1设置为:
pic1.ScaleMode = 3:pic1.ScaleWidth = 35: pic1.ScaleHeight = 30
Private Sub pic1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Debug.Print Int(X), Int(Y)
End Sub
那么,当鼠标位于Pic1的四角时,就可以得到
0 0 (左上)
34 0 (右上)
0 29 (左下)
34 29 (右下)
四个数值。
注意pic1.ScaleWidth = 35: pic1.ScaleHeight = 30这两句与Pic1实际的Width和Height无关
板凳
loongchina [专家分:90] 发布于 2008-04-12 21:10:00
very good !但不是我所想要的那种啊,我的意思是以form1.scalelet=xx,form1.scaletop=xx,即以窗体为对象,坐标原点在窗体中心,以form1_clik() 的方式去显示,新坐标系中单击位置处的坐标
3 楼
loongchina [专家分:90] 发布于 2008-04-12 21:23:00
谢谢!由于你的启示,问题已解决,追加你+30
4 楼
zhanghanyn [专家分:220] 发布于 2008-04-16 23:40:00
可以用API的
Public Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long
定义一个type POINTAPI(X AS LONG,Y AS LONG)
dim p1 as pointapi
res=getcursorpos(p1)
p1.x 和p2.y 就是你想要的
我来回复