关于控件背景透明问题

不在线的程序员 2013-06-06 11:43:27
对于一个静态控件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,如果是这样该如何修改?

求大神指点一二
...全文
44 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

3,424

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧