鼠标滚轮的处理(鼠标滚轮如何清理)

电脑教程
电
电脑教程
4319
文章
0
评论
• 2023年2月6日09:48:13 • 电脑教程 • 阅读 16,549

鼠标滚轮的处理

鼠标滚轮的处理会稍微棘手一点,因为在UI设计规范中,当用户滑动鼠标滚轮的时候,需要将内容视图滚动一个预定义的”量”,这里的”量”实际上是一个WHEEL_DELTA(也叫detent)的值。在上面的需求中,有两个不容易察觉的地方:第一,具体需要滚动的量来自于一个系统设定,我们必须遵从这个设定,第二,某些鼠标会报告给操作系统:它的滚动量不是WHEEL_DELTA的整数倍。这就尴尬了!

本文要点
  • 鼠标滚轮的处理
  • 所谓的”半程滚动”
  • 直接上代码
  • 家庭作业
  • 总结

所谓的”半程滚动”

特别的是,存在一种可能性,某一类高精度鼠标上报的滚动量会小于WHEEL_DELTA。举个例子,考虑一种支持”half-clicks”的鼠标。当你在滑动滚轮的量位于”点击”的一半时,它会上报滚动量为 WHEEL_DELTA/2,当你继续滚动, 直到滑动量等效于一次点击时,它会再次上报剩下的WHEEL_DELTA/2。为了处理这种特别情况,你需要确保当滚动量到达一次点击时,窗口内容必须和普通低分辨率鼠标完成单个WHEEL_DELTA滚动时产生一致的表现。

鼠标滚轮的处理(鼠标滚轮如何清理)

为了处理上文中的第一个问题,我们会在每次收到鼠标滚轮消息的时候查询用户期望的滚动Delta值。对于第二个问题,我们可以将这些滚动消息积累起来,然后尽可能多的处理它们,为后续的滚动事件预留时间。

直接上代码

鼠标滚轮的处理(鼠标滚轮如何清理)

/****************华丽分割****************/

鼠标滚轮的处理(鼠标滚轮如何清理)

家庭作业

1) 在上述代码中,我们在计算dLines的时候,使用了一个int类型转换,为什么要怎么做?2) 如果你手头没有一个高精度滚轮鼠标,你会如何测试半滚动时代码是否能正常工作?

总结

再一次为微软在硬件兼容性上所做的重重努力所折服,她是如此的关心你:不管你使用的是一个普通鼠标,还是一个高精度鼠标。

鼠标滚轮的处理(鼠标滚轮如何清理)

以上内容来源于网络,由“WiFi之家网”整理收藏!

相关推荐

台式电脑多少价位可剪辑视频 电脑教程

台式电脑多少价位可剪辑视频

在当今数字化时代,视频剪辑已经成为许多人日常生活中的重要一部分,尤其是在自媒体和短视频行业的快速发展下,越来越多的人开始尝试制作和编辑视频。然而,进行视频编辑并不仅仅依赖于软件的操...
台式电脑显卡推荐 电脑教程

台式电脑显卡推荐

在选购台式电脑时,显卡是一个至关重要的部件,因为它直接影响到电脑的图形处理能力和整体性能。无论是玩游戏、进行图形设计工作,还是观看高清视频,显卡的选择都直接关系到用户的体验。因此,...
台式电脑音响插哪个接口 电脑教程

台式电脑音响插哪个接口

在现代家庭或办公室中,台式电脑已成为不可或缺的设备,音响作为增强音频体验的重要配件,其连接方式也显得尤为重��。了解如何正确地将音响连接到台式电脑,不仅关系到音质的发挥,还能避免不...