2 a552298242 a552298242 于 2016.01.31 21:23 提问

请问下vb.net中有关mouse_event的问题?

如题,我想用vb.net实现模拟滚轮移动的功能。一开始就是打算用mouse_event中的
MOUSEEVENTF_WHEEL,但是最后没有成功,请问下
上网查了些资料。有的地方说MOUSEEVENTF_WHEEL是模拟滚轮移动的
有的地方说是模拟滚轮按下并抬起,请问到时哪一个是对的,我在MSDN上看的有关
MOUSEEVENTF_WHEEL的介绍是The user pressed and released the mouse wheel.
应该是按下并抬起,但是dwData得介绍看起来像是模拟移动的,请问那个是对的呢
我的有关代码如下,移动到指定位置是没问题的,但是模拟滚动却没反应

         mouse_event(MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0) '使用绝对坐标系
        'mouse_event(MOUSEEVENTF_MOVE, 600, 150, 0, 0) '移动到指定位置
        mouse_event(MOUSEEVENTF_WHEEL, 0, 0, -100, 0) '滚动到指定位置
        MessageBox.Show("OK")

4个回答

caozhy
caozhy   Ds   Rxr 2016.01.31 21:26
已采纳

一些鼠标没有滚轮有3个按键,对于这种鼠标,按下中间的按键,然后移动,来实现滚动,触发的消息和带有滚轮的鼠标直接滚动是一样的。
所以两种说法其实都是对的。

caozhy
caozhy   Ds   Rxr 2016.01.31 21:28

dwData表明滚动的距离。不知道你说的没有反应什么意思。

a552298242
a552298242   2016.02.01 20:23

我的意思是,使用MOUSEEVENTF_MOVE时,鼠标位置的确是移动了,这说明整个代码是没问题的,但是我使用MOUSEEVENTF_WHEEL后,却没有滚动到指定位置。正常情况下使用滚轮浏览器界面会上下滚动,但是使用wheel却不会滚动

a552298242
a552298242   2016.02.01 20:28

刚才又试了一下,如果取消绝对坐标系就可以,不知道是为什么

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!