【问题标题】:UpdateLayeredWindow blues on Windows XPWindows XP 上的 UpdateLayeredWindow 蓝调
【发布时间】:2011-04-28 15:37:12
【问题描述】:

我有一个部分基于this code 的 NET 2.0 Winforms 应用程序。它具有使用UpdateLayeredWindow API 的表单透明度。它在 Vista 和 Windows 7 上完美运行,但在 Windows XP 上失败。

我已将其缩小到 UpdateLayeredWindow 失败并出现最后一个错误 8(内存不足)。在进行实验时,我还发现将(期望的)ULW_ALPHA 替换为 ULW_COLORKEYULW_OPAQUE 在 XP 上有效,但会产生错误的效果(图像显示但透明度错误)。

我想知道 NET 在内部加载和处理 PNG 位图的方式是否有问题,并且 UpdateLayeredWindow 不喜欢它。

【问题讨论】:

    标签: c# .net .net-2.0


    【解决方案1】:

    看起来它正在工作,但分层窗口实际上不可见,我猜不透明度设置是错误的。使用您链接到的代码,将 LayeredForm.cs 中的第 67 行从“BlendOp = 255”更改为“BlendOp = 0”为我解决了这个问题(在 Windows XP SP3 上运行)。

    【讨论】:

    • 非常简单!谢啦!今天在这件事上浪费了太多时间,而你挽救了这一天。太棒了。
    猜你喜欢
    • 2011-06-14
    • 1970-01-01
    • 2012-06-23
    • 2014-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多