关于控件背景透明问题

不在线的程序员 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,如果是这样该如何修改?

求大神指点一二
...全文
10 点赞 收藏 回复
写回复
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
相关推荐
发帖
其他开发语言
创建于2007-08-27

3381

社区成员

其他开发语言 其他开发语言
申请成为版主
帖子事件
创建了帖子
2013-06-06 11:43
社区公告
暂无公告