注册 登录
编程论坛 VB6论坛

关于移动鼠标的问题

renxiaoyao36 发布于 2016-05-19 19:50, 1616 次点击
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
SetCursorPos (Screen.Width / 2), (Screen.Height / 2) '移动鼠标位置

这个代码我本意是想要将鼠标移动到屏幕正中央,可是最后的结果却是鼠标移动到了屏幕最右下角,而非中央。请问各位前辈,这是为什么呢?如何修改呢?
4 回复
#2
hjxlj2016-05-20 23:23
如此简单的一个问题,竟然没人能给楼主解决?还是见下楼我的吧。

[此贴子已经被作者于2016-5-21 21:13编辑过]

#3
hjxlj2016-05-21 10:19
楼主按我的代码修改即可
SetCursorPos ScaleX((Screen.Width / 2), 1, 3), ScaleY((Screen.Height / 2), 1, 3)

至于原因嘛,很简单。因为SetCursorPos使用的坐标是以像素为单位,而Screen的Width和Height属性是以缇为单位,所以必须将Screen的Width和Height属性值转换为像素才行。代码中ScaleX和ScaleY就是完成缇到像素的单位转换的。
#4
renxiaoyao362016-05-21 21:28
谢谢回答,API方面我没有多大涉入,因为平时用不到嘛,现在一用就发生这么个低等的错误,让大家见笑了……

另外,楼上能帮忙说一下ScaleX这个函数的参数么?

[此贴子已经被作者于2016-5-21 21:29编辑过]

#5
hjxlj2016-05-22 01:02
回复 4楼 renxiaoyao36
这个百度一下,你就知道,我就实在没必要再打字介绍了。
1