怎样改变RadioBox和CheckBox的背景和字体颜色

Sambuke 2005-03-09 11:57:08
我用WM_CTLCOLOR可以改变所有的控件的背景和字体颜色,比方说黑色背景和白色字体。
但是就是单选和复选框不起作用:


HBRUSH CVideoSetDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

hbr = m_brush;

UINT curID = pWnd->GetDlgCtrlID();

if (nCtlColor != CTLCOLOR_DLG)
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(255,255,255));
pDC->SetBkColor(RGB(0,0,0));
}


return hbr;
}
这样子的结果是单选复选框都是黑色的,无法显示,我在WM_PAINT中也不能改变
求救
谢谢!
...全文
511 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
flinming 2005-03-10
  • 打赏
  • 举报
回复
HBRUSH hMYbr = ::CreateSolidBrush(RGB(255, 0, 255));

HBRUSH CVideoSetDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

hbr = m_brush;

UINT curID = pWnd->GetDlgCtrlID();

if (nCtlColor != CTLCOLOR_DLG)
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(255,255,255));
pDC->SetBkColor(RGB(0,0,0));

return hMYbr;//主要看这句话。。。。。。。。。。。
}


return hbr;
}


xuzheng318 2005-03-10
  • 打赏
  • 举报
回复
HBRUSH hMYbr = ::CreateSolidBrush(RGB(255, 0, 255));
windyloft 2005-03-10
  • 打赏
  • 举报
回复
HBRUSH CTest1Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: Change any attributes of the DC here
UINT curID = pWnd->GetDlgCtrlID();

if (curID == IDC_RADIO1)
{
HBRUSH hMYbr = ::CreateSolidBrush(RGB(255, 0, 255));
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(255,255,0));
pDC->SetBkColor(RGB(0,255,255));
return hMYbr;
}

// TODO: Return a different brush if the default is not desired
return hbr;
}
whs1980 2005-03-10
  • 打赏
  • 举报
回复
m_brush;是什么颜色,背景色跟他有关.
pDC->SetBkColor(RGB(0,0,0));是设置文本的背景色

15,979

社区成员

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

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