修改对话框背景色后怎么修改控件背景色为透明
修改对话框背景色后如何修改控件背景色为透明?
我使用OnEraseBkgnd修改了对话框的背景色为白色,但对话框上面的静态文本、checkbox背景颜色不变。想改他们的背景颜色为透明(或和对话框背景一致),该如何修改?
使用如下代码时,静态文本背景改了,但checkbox和ccombobox的下拉菜单的背景为黑色,且覆盖了文字,不知道为什么?
------解决方案--------------------
pWnd-> GetDlgCtrlID() == 具体的ID
我使用OnEraseBkgnd修改了对话框的背景色为白色,但对话框上面的静态文本、checkbox背景颜色不变。想改他们的背景颜色为透明(或和对话框背景一致),该如何修改?
- C/C++ code
BOOL CSystemSetShowDlg::OnEraseBkgnd(CDC* pDC) { CRect rc; GetClientRect(&rc); pDC->FillSolidRect(&rc, m_bkColor); //修改了对话框的背景色为白色 return TRUE; }
使用如下代码时,静态文本背景改了,但checkbox和ccombobox的下拉菜单的背景为黑色,且覆盖了文字,不知道为什么?
- C/C++ code
HBRUSH CSystemSetShowDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); pDC-> SetBkMode(TRANSPARENT); pDC-> SetTextColor(RGB(0,0,0));//此处设置字体的颜色 return HBRUSH(GetStockObject(HOLLOW_BRUSH)); //return hbr; }
------解决方案--------------------
pWnd-> GetDlgCtrlID() == 具体的ID