【发布时间】:2019-10-21 11:40:52
【问题描述】:
虽然这个问题有很多变体,但对于想要在使用 Win32 的透明窗口上使用内置通用控件的简单案例似乎没有具体答案。我不希望控件是透明的,我只希望它周围的边框是透明的。我不敢相信 MS 在添加时没有更新 .dll 来处理透明度,但我猜他们忘记了?有没有具体的方法有效。一个按钮可以通过 WS_EX_TRANSPARENT 接近,但在大多数情况下它工作的地方很不稳定,但有时会出现部分边框。编辑控件,根据何时获得焦点进行更改。
所以问题很简单:
有没有办法在透明窗口上制作通用控件,使其周围没有白色边框?
如果没有,是否有一个很好的替代库可以通过所有者绘制来完成?
如果有,有哪些,方法是什么?
仅仅因为控件周围的区域而重新发明轮子似乎很愚蠢。
TIA!!
【问题讨论】:
-
基本上控件不是为此而设计的,边框设计为与背景融为一体,并且您会看到透明背景。
-
你好,user3161924 你能提供一个关于这个问题的例子,比如代码和截图。
-
你的windows是什么版本的?
-
Vista 或更高版本只需要支持。例如,考虑为 DeskBand 添加到 MS Win7 SDK 示例。
-
@user3161924 嗨,我想说 WS_EX_TRANSPARENT 不会使窗口透明。它告诉 Windows,如果一个 Windows 在另一个 Window 之下,它不需要绘制它的背景,因为它被覆盖了。半透明窗口可以通过分层窗口和设置不透明度来完成。正如我在答案中指出的那样
标签: winapi transparency common-controls