关于控件背景透明问题
对于一个静态控件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,如果是这样该如何修改?
求大神指点一二