2

我有一个应用程序,在我的控制之外,几个 Windows 窗体都有一个 TransparencyKey 属性集。当这些窗口覆盖(在前面)另一个具有 DirectDraw 视频表面的窗体时,前景窗体会闪烁(部分显示窗体,部分显示下面的视频)。问题是,TransparencyKey 的颜色不会出现在应用程序的任何地方,所以 NOTHING 应该是透明的……换句话说,结果应该是前景窗体完全不透明。

闪烁的场景

当与某种形式或其他设置为透明的 Windows 窗体结合使用时,是否有人遇到过 DirectDraw 表面闪烁的经验?我已经为此工作了数周,但没有成功。谢谢!

4

1 回答 1

1

很抱歉,但我建议您完全放弃该目标并尝试以其他方式实现。

DirectDraw 是在屏幕上显示内容的一种方式,带有区域的表单(作为所谓的“透明键颜色”的掩码动态创建)是使用 GDI 完成的。正如我所看到的(并且希望以其他方式证明) - 无论如何您将无法组合这两个窗口。

而且你可能会在不同的 Windows 上得到不同的结果,这取决于版本、使用的显卡等等。

另一方面,您能否破解那些您无法控制的表单并从中删除 TransparencyKey 属性?即使使用 Win32 API?

于 2011-05-24T09:23:17.887 回答