gpt4 book ai didi

delphi - MouseWheelDown 事件连续触发多次

转载 作者:行者123 更新时间:2023-12-02 09:43:33 24 4
gpt4 key购买 nike

Windows 7 上的 Delphi 7

我想使用鼠标滚轮向下滚动列表(TElTree)...所以我开始在 ElTree 的 OnMouseWheelDown 事件中编写一些代码。然后我注意到它一次滚动 2 行。控制面板中的鼠标滚轮设置设置为一次仅滚动 1 行。如果我在事件处理程序中放置一个断点,我会发现事件处理程序本身被快速连续执行两次......为什么?如何确保它只执行一次(请提供代码)?

最佳答案

当滚轮滚动时,操作系统会发送 WM_MOUSEWHEEL 消息。 wParam 参数的高位字表示车轮转动了多远。如果它转动了一次“咔哒声”,则其值将为 120 或 WHEEL_DELTA。但如果您的滚轮识别出的滚动次数少于一次点击的值,则该值可能会小于该值。

正确的WM_MOUSEWHEEL消息处理程序需要考虑该参数,并且要么保留一个“滚动累加器”来跟踪滚轮滚动的距离,要么能够滚动少于整行。 假设每条消息都表示完全点击滚轮的消息处理程序将会感到抱歉。

关于delphi - MouseWheelDown 事件连续触发多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3698472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com