滚动条第6章节:鼠标滚轮的处理( 二 )

所谓的”半程滚动”

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

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

直接上代码


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

家庭作业

推荐阅读