我用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中也不能改变
求救
谢谢!
但是就是单选和复选框不起作用:
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中也不能改变
求救
谢谢!
pDC->SetBkColor(RGB(0,0,0));是设置文本的背景色
{
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;
}
{
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;
}