在win32中更改无边框窗口的颜色
Posted
技术标签:
【中文标题】在win32中更改无边框窗口的颜色【英文标题】:change color of borderless window in win32 【发布时间】:2021-01-03 09:31:43 【问题描述】:我正在创建一个无边框窗口,类似于https://github.com/melak47/BorderlessWindow,并使用它来创建交换链并使用 vulkan 进行绘制。
为了获得无边框窗口(带有航空阴影),我使用:DwmExtendFrameIntoClientArea 最多 1 个像素。 我可以用我的交换链在最后一个像素边框上绘制。经过一番谷歌搜索后,我明白这是唯一的方法。
不幸的是,在调整大小时,无论我如何与合成器同步,我仍然偶尔会看到 亮白色 边框闪烁。
为了使这一点可以接受,我想为边框使用更中性的颜色。我如何做到这一点?
编辑:如果我将边框增加到 10 像素,我会得到: (绿色和红色框是vulkan绘制的,没有透明度,框架清零alpha)
这个白色是从哪里来的?
注意:这不是强调色。
【问题讨论】:
【参考方案1】:我找到了解决办法。
有一个未记录的函数来设置窗口的附加 DWM 设置:https://gist.github.com/ysc3839/b08d2bff1c7dacde529bed1d37e85ccf
这也用于制作模糊的透明度,并且可以使用 ACCENT_ENABLE_GRADIENT 枚举更改边框颜色。
【讨论】:
以上是关于在win32中更改无边框窗口的颜色的主要内容,如果未能解决你的问题,请参考以下文章