用WM_MOUSEMOVE消息画轨迹点时,发现鼠标移动很快的时候 只能画出少数几个点。

来源:互联网 发布:mysql float 精度 编辑:程序博客网 时间:2024/05/16 17:13

用WM_MOUSEMOVE消息画轨迹点时,发现鼠标移动很快的时候 只能画出少数几个点。

然后找到这样一段话,但还是不怎么能了解什么意思。

 

WM_MOUSEMOVE 消息报告光标在窗口客户区的移动。

当鼠标移动时,在光标下面的窗口会接收到快速报告光标最近位置的WM_MOUSEMOVE 消息。

Windows用一种有趣的方法来投递WM_MOUSEMOVE 消息,以防止运行缓慢的应用程序被光标移动时产生的大量报告位置的消息淹没。Windows并没有把每次移动鼠标产生的WM_MOUSEMOVE 消息装填在消息队列中,而是仅仅在一个内部数据结构中设置了一个标示。

下一次应用程序检索消息时,Windows由于设置了标志,将产生报告当前光标位置的WM_MOUSEMOVE 消息。

这样,应用程序接收到的WM_MOUSEMOVE 消息数量正好适合它们处理。

如果光标很慢的移动,除非应用程序忙于执行其他任务,否则会报告光标轨迹上的所有点位置。

但是如果光标飞快的划过屏幕,大多数应用程序只会接收到少数几个WM_MOUSEMOVE 消息。

 

不明白之一
Windows并没有把每次移动鼠标产生的WM_MOUSEMOVE 消息装填在消息队列中,而是仅仅在一个内部数据结构中设置了一个标示。

那为什么GetMessage();能取到WM_MOUSEMOVE 呢?

不明白之二

如果光标很慢的移动,除非应用程序忙于执行其他任务,否则会报告光标轨迹上的所有点位置。

难道忙于执行其他任务就不会报告所有点位置?

 

只能画出少数几个点,的原因还是没有找到

 

原创粉丝点击