【问题标题】:Scrollbar flicker滚动条闪烁
【发布时间】:2010-11-17 03:46:56
【问题描述】:

我的滚动条的绘制方式有问题。由于外部限制(我的应用程序是一个在外部窗口中运行的插件,它坚持在任何常规子窗口上进行绘制),我必须使用SCROLLBAR-class 窗口(而不是使用WS_CHILD | WS_VSCROLL)

对于收到的几乎每条消息,滚动条都显示为流畅一致的动画。但是,当我收到SB_LINEDOWN 消息时(即当我单击底部/右箭头时),滚动条会可怕地闪烁(Low-framerate example)。同样,所有其他消息都可以正常工作。

我已经测试了删除滚动条位置更新(仍然损坏)和删除实际滚动代码(仍然损坏)。我已经对该区域进行了双重缓冲以防止更严重的闪烁..

这可能是什么原因造成的,我该如何解决?

【问题讨论】:

  • 这真的很奇怪,我真的不知道。如果您发布一些代码,它可能会帮助我,并且几乎肯定会帮助其他人。

标签: c++ windows winapi scrollbar


【解决方案1】:

除了 Goz 提到的(我敢打赌你已经在做)之外,可能值得在滚动条窗口本身及其容器或任何重叠窗口上尝试 WS_CLIPCHILDREN 和 WS_CLIPSIBLINGS 的组合。

【讨论】:

  • 我还需要进一步测试,但似乎将 WS_CLIPCHILDREN 添加到父作品中。
【解决方案2】:

尝试拦截并忽略 WM_ERASEBKGND 这对我控制闪烁有很大帮助。不知道是不是你的问题:(

【讨论】:

    猜你喜欢
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 2014-03-10
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    • 2020-08-27
    • 2018-08-11
    相关资源
    最近更新 更多