gpt4 book ai didi

c++ - CScrollBar 拇指跟踪不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 12:10:11 24 4
gpt4 key购买 nike

我正在尝试使用 CScrollBar 来导航对话框中的项目列表。我在对话框中捕捉到 OnVScroll 消息,并且滚动条正确响应单击栏顶部和底部的箭头,以及单击栏的范围以整页前进。问题是,当您尝试拖动拇指时,它根本不会响应,直到您释放鼠标按钮,此时拇指移动到正确的位置。

我使用 spy++ 查找 WM_VSCROLL 消息,看起来它们只在您单击和释放拇指时以 SB_THUMBTRACK 模式发送,而不是在拖动时发送。然而,CScrollBar 上的 msdn 页面表示,在拖动拇指时应连续发送这些消息。由于我没有收到这些消息,所以我不知道拇指在哪里,也无法设置当前位置。

我不认为消息在其他任何地方被拦截,首先是因为即使我将它设置为记录所有消息,spy++ 也没有看到它们,其次是因为该栏在单击和释放时确实收到了两条缩略图消息。

无论是为对话框提供 WS_VSCROLL 样式还是创建 CScrollBar 并将其放置在对话框中,我都会遇到这个问题。

有什么我想念的吗?

最佳答案

确保您没有混淆 SB_THUMBTRACK 和 SB_THUMBPOSITION。前者是您想要实时滚动的内容,而后者仅在用户释放 slider 时才发送。

您还可以检查性能设置(控制面板 -> 查看高级系统设置 -> 高级选项卡 -> 性能 -> 设置... -> 视觉效果。可能会禁用某些实时效果(例如平滑滚动列表框,或其他取决于您使用的 Windows 版本)。

关于c++ - CScrollBar 拇指跟踪不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10193077/

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