热情软件屋

 

如何计算鼠标的移动速度


编号:QA000807
建立日期: 1999年4月13日 最后修改日期:1999年4月13日
所属类别:

DD:
    Vb5
    PW98
    如何利用GetCursorPos来计算鼠标的速度?(如:米/秒)

回答:

    准确的办法是利用API函数SetWindowsHookEx安装一个WH_MOUSE钩子。这样系统的所有WM_MOUSEMOVE消息(可以来自不同的窗口)都会传递给钩子函数。每个WM_MOUSEMOVE消息的参数就是鼠标位置(相对于窗口的客户区,可以用ClientToScreen函数转换为屏幕坐标),记下连续两次鼠标的位置和时间。在此过程中无需使用GetCursorPos函数。使用GetDeviceCaps的LOGPIXELSX和LOGPIXELSY获得一个像素对应的Twip数(567twips = 1 cm)。
    还有一种方法,需要使用GetCursorPos函数。作法是在你的Form上放置Timer控件,定时间隔尽可能小,比如55ms(VB的Timer只能精确到55ms,如果要提高精度可以参考QA000424 "记时精度更高的Timer控件")。在连续两次Timer事件中使用GetCursorPos函数得到鼠标的屏幕位置。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio