我正在尝试使用CScrollBar来导航对话框中的项目列表。我在对话框中捕获OnVScroll消息,滚动条正确响应单击条形图顶部和底部的箭头,并单击条形图的范围以按整页前进。问题在于,当您尝试拖动拇指时,在您松开鼠标按钮之前它根本不响应,此时拇指移动到正确的位置。
我使用spy ++查找WM_VSCROLL消息,看起来他们只是在你点击拇指和释放时才用SB_THUMBTRACK模式发送,而不是在拖动时。然而,CScrollBar上的msdn页面表示在拖动拇指时应该连续发送这些消息。由于我没有收到这些消息,我不知道拇指在哪里,也无法设置当前位置。
我认为这些消息在其他任何地方都没有被截获,首先是因为即使我将它设置为记录所有消息,间谍++也没有看到它们,其次是因为条形图在点击和释放时确实获得了两个缩略图消息。
我有这个问题,无论我是给对话框WS_VSCROLL样式还是创建CScrollBar并将其放在对话框中。
我有什么遗失的吗?
答案 0 :(得分:1)
确保您没有将SB_THUMBTRACK与SB_THUMBPOSITION混淆。前者是您想要的实时滚动,后者仅在用户释放滑块时发送。
您还可以检查性能设置(控制面板 - >查看高级系统设置 - >高级标签 - >性能 - >设置... - >视觉效果。可能有些实时效果被禁用(如平滑滚动列表框,或其他取决于您正在使用的Windows版本)。