如何更改基于TWinControl的控件的不透明度?为什么他们没有将这种能力添加到TControl / TWinControl级别(为什么只有TForm)?
答案 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自行绘制整个控件。