【问题标题】:How correctly show hidden transparent window when contents changed内容更改时如何正确显示隐藏的透明窗口
【发布时间】:2010-08-31 12:02:57
【问题描述】:

我有一个使用 WS_EX_LAYERED 创建并使用 SetLayeredWindowAttributes(... LWA_ALPHA) 进行调整的分层(半透明窗口)。我必须不时地显示和隐藏它,但是自从上次隐藏以来,有些情况下图像会发生重大变化。但 SetWindowPos 和 ShowWindow 首先显示前一个图像(可能是上次缓冲的图像),然后我看到新的图像重绘。什么是使它无效的最好方法,就好像它是第一次显示一样(所以没有绘制以前的缓冲图像)

谢谢

最大值

【问题讨论】:

    标签: windows winapi


    【解决方案1】:

    以前从未注意到这一点,这可能是您的视频显示驱动程序的产物。

    是的,你可以做点什么。分层窗口允许您控制不透明度。您可以从 SetLayeredWindowAttributes() 的 bAlpha 开始为 0,并在您处理的第一条 WM_PAINT 消息后更改它。由计时器驱动的淡入也是一种很常见的技巧。

    【讨论】:

    • 已回答,虽然认为没有回复以同样的方式解决了它)我理解为什么人们无法注意到它,在没有用户干预的情况下内容不会经常改变。
    猜你喜欢
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 2014-06-12
    • 2013-02-28
    • 1970-01-01
    相关资源
    最近更新 更多