关于控件背景透明问题

不在线的程序员 不在线的程序员 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
对于一个静态控件IDC_STATIC1,在设置对话框背景颜色之后,使控件透明于背景之上,也就是只显示出静态控件的Caption。
1.我设置了该控件Extended Style中Transparent属性,但不起作用,这是为什么?
2.在 ON_WM_CTLCOLOR()消息响应函数中加入了
if( nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetBkMode(TRANSPARENT); //设置背景透明
return HBRUSH(GetStockObject(HOLLOW_BRUSH));
}
可以使控件透明,但是如果改为在Onpaint函数中执行GetDlgItem(IDC_STATIC1)->GetDc()->SetBkMode(TRANSPARENT);就不起作用,这是为什么?
3.如果在 ON_WM_CTLCOLOR()消息响应函数中加入了
if( nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetBkMode(TRANSPARENT); //设置背景透明
return HBRUSH(GetStockObject(HOLLOW_BRUSH));
}
然后再使用USkin.lib加入对话框皮肤,if( nCtlColor == CTLCOLOR_STATIC) 永远不会进入,可能USkin屏蔽了CTLCOLOR_STATIC,如果是这样该如何修改?

求大神指点一二
...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部