MFC中,为什么设置不了控件Groupbox的背景透明?
新建一个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); }
CButton* btn = new CButton(); btn->Create("static",WS_EX_TRANSPARENT|BS_GROUPBOX/*|BS_NOTIFY*/|WS_VISIBLE|WS_CHILD, ret,this,533525); btn->ShowWindow(1);
if(pWnd->GetDlgCtrlID()==IDC_COM_SEX) { [color=#FF0000]pDC->SetBkMode(OPAQUE);[/color] pDC->SetBkColor(RGB(180,230,255)); return m_brush; }
[解决办法]
ModifyStyleEx().
[解决办法]
建议自绘
[解决办法]
我一般都是直接在背景上自己画了
这个种情况其实没必要费用group控件