MFC中,为什么设置不了控件Groupbox的背景透明?

zhongbin104 2012-05-07 06:19:38
新建一个DLG的测试项目,将DLG的属性 Clip Children设置为TRUE,再在界面上拖放一个Group box控件,之后开始测试。

经过多次的测试,发现:
1、 直接拖一个控件到界面上,通过属性栏里设置Transparent的值为TRUE,可以实现我需要的效果。而且这个的Group Box背景和DLG一致。

2、属性栏里的Transparent值为FALSE。加入如下WM_CTLCOLOR消息代码处理,无效。
if(nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)::GetStockObject(NULL_BRUSH);
}


后修改下,修改后代码:
if(nCtlColor == CTLCOLOR_DLG)
{
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)::GetStockObject(NULL_BRUSH);
}

想把DLG界面的背景透明掉,但是还是没成功,背景依然存在。

3、动态创建一个Group box控件,加入属性,代码如下。显示的效果还是达不到第一效果。
CButton* btn = new CButton();
btn->Create("static",WS_EX_TRANSPARENT|BS_GROUPBOX/*|BS_NOTIFY*/|WS_VISIBLE|WS_CHILD,
ret,this,533525);
btn->ShowWindow(1);


见图,第一个Group box是在属性栏里设置 Transparent为TRUE的效果, 第二个Group box的Transparent值为FALSE,但是做了上面第2个方案处理了。但是效果就不能和第1个Group box效果一样了。


不知道为什么。请大家帮忙分析下。只要是帮忙者,都有分。分不够,有加分! 先谢谢各位了!


...全文
827 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
心疼包 2014-07-03
  • 打赏
  • 举报
回复
我也不会用groupbox啊…………
向立天 2012-05-08
  • 打赏
  • 举报
回复
我一般都是直接在背景上自己画了
这个种情况其实没必要费用group控件
zhongbin104 2012-05-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
可以设置.

C/C++ code

if(pWnd->GetDlgCtrlID()==IDC_COM_SEX)
{
pDC->SetBkMode(OPAQUE); pDC->SetBkColor(RGB(180,230,255));
return m_brush;
}

……
[/Quote]

稍微给全一点点代码吧。 我试了你的方法,还是不行。 还有就是你的m_brush是怎么处理的!
zhongbin104 2012-05-08
  • 打赏
  • 举报
回复
那如何用代码达到 Transparent为TRUE 的效果呢?

通过属性设置可以达到的效果,用代码怎么就不可以呢? 自绘有点麻烦。
zhongbin104 2012-05-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
我一般都是直接在背景上自己画了
这个种情况其实没必要费用group控件
[/Quote]

最后还是画了个控件显示了自己要的功能。。

唯一遗憾的就是:还是没弄明白 Transparent为TRUE 这个属性实现的原理,以及代码实现该如何弄。

不过问题解决了,就结贴了!谢谢各位的帮助!
SKINSE界面库 2012-05-07
  • 打赏
  • 举报
回复
建议自绘
schlafenhamster 2012-05-07
  • 打赏
  • 举报
回复
ModifyStyleEx().
就叫我海 2012-05-07
  • 打赏
  • 举报
回复
可以设置.
if(pWnd->GetDlgCtrlID()==IDC_COM_SEX)
{
pDC->SetBkMode(OPAQUE); pDC->SetBkColor(RGB(180,230,255));
return m_brush;
}


试试.我上面是可以的..
schlafenhamster 2012-05-07
  • 打赏
  • 举报
回复
pDC->SetBkMode(TRANSPARENT);
只对“Static”标题内的区域有效,不是整个控件透明。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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