TWinControl的不透明度?

时间:2009-10-28 09:39:21

标签: delphi graphics vcl opacity alphablending

如何更改基于TWinControl的控件的不透明度?为什么他们没有将这种能力添加到TControl / TWinControl级别(为什么只有TForm)?

2 个答案:

答案 0 :(得分:5)

谢谢Lars。

我不知道你是怎么做的。据我了解,Windows只为Windows添加了半透明,这就是为什么TForm可以处理它,而不是单独的控件。请记住,大多数VCL只是Windows公共控件的包装器,因此如果Windows不这样做,相关的VCL控件也很少。第三方组件通常会扩展基本功能。

答案 1 :(得分:5)

通过名为分层窗口的功能提供控制窗口的不透明度。你可以read more about the feature on MSDN。该功能仅适用于顶级窗口。据我所知,Desktop Window Manager(Vista的“玻璃”效果)也只适用于顶级窗口。

可用于子窗口的替代方法是使用window regions将窗口的某些区域标记为完全透明,或使用bitmap alpha blending自行绘制整个控件。