双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

SetWindowCompositionAttribute为何使控件文本也变透明

szx0427 szx0427 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

如题,我用SetWindowCompositionAttribute给主窗口加了半透明模糊效果后,上面的控件文本也变透明:

经我测试,一切黑色像素都会变全透明(上图窗口背景透明就是因为我画了纯黑色),白色仍然不透明,其它颜色会以某种算法呈现半透明(见上图中Syslink的蓝色) 。但我想让控件文本仍是不透明的黑色。请问有何办法?

以下是我调用SetWindowCompositionAttribute的代码:
 

DWORD accent[4] = { 3,0,0,0 }; // 3是AccentState=ACCENT_ENABLE_BLURBEHIND
struct {
	DWORD attrib;
	PVOID pvData;
	UINT cbData;
} AttribData = {19,accent,sizeof(accent)}; // 19是WCA_ACCENT_POLICY
SetWindowCompositionAttribute(m_hWnd, &AttribData); // m_hWNd是主窗口

 

...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部
szx0427
VC/MFC 16,550 成员 421,606 内容