怎样检测鼠标停止运动了.难解决方案
怎样检测鼠标停止运动了...难
有什么系统函数, 或者消息判断鼠标是否在运动, 什么时候停止运动的?
就像屏保, 它怎么知道鼠标呀, 键盘呀, 有多长时间没反应了呢?
自己用一个Timer试过, 可以判断, 但问题是这种方法有一个精度, 时间设置太长要, 得过很久才知道没动了.
有什么方法可以即时地检测鼠标停止运动了呢?
------解决方案--------------------
GetLastInputInfo会监测鼠标和键盘,不能只监测鼠标.而且所谓开一个线程还不如设置一个Timer,因为实际上在这线程也是起得一个Timer的作用.至于在OnMouseMove中比较POINT的方法不光效率低而且不准确.
提供一个我的方法,设置一个全局标志位long m_nPast和一个Timer,Timer的时间间隔取需要的灵敏度.在OnMouseMove中将全局标志位m_nPast复位,即m_nPast=0.OnTimer中将m_nPast加一指定值,同时根据m_nPast判断过去了多少时间.假如时间超过了指定值,就确定鼠标停止运动了.
有什么系统函数, 或者消息判断鼠标是否在运动, 什么时候停止运动的?
就像屏保, 它怎么知道鼠标呀, 键盘呀, 有多长时间没反应了呢?
自己用一个Timer试过, 可以判断, 但问题是这种方法有一个精度, 时间设置太长要, 得过很久才知道没动了.
有什么方法可以即时地检测鼠标停止运动了呢?
------解决方案--------------------
GetLastInputInfo会监测鼠标和键盘,不能只监测鼠标.而且所谓开一个线程还不如设置一个Timer,因为实际上在这线程也是起得一个Timer的作用.至于在OnMouseMove中比较POINT的方法不光效率低而且不准确.
提供一个我的方法,设置一个全局标志位long m_nPast和一个Timer,Timer的时间间隔取需要的灵敏度.在OnMouseMove中将全局标志位m_nPast复位,即m_nPast=0.OnTimer中将m_nPast加一指定值,同时根据m_nPast判断过去了多少时间.假如时间超过了指定值,就确定鼠标停止运动了.