填充statictext的背景色有关问题
填充statictext的背景色问题
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
HBRUSH CMatrixCtrlDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何属性
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
switch(nCtlColor)
{
case CTLCOLOR_STATIC:
pDC-> SetTextColor(RGB(28,28,90));
pDC-> SetBkColor(RGB(227,242,208));
return m_Brush;
case CTLCOLOR_LISTBOX:
pDC-> SetTextColor(RGB(28,28,90));
pDC-> SetBkColor(RGB(255,255,255));
return (HBRUSH) (m_Brush. GetSafeHandle());
case CTLCOLOR_EDIT:
pDC-> SetTextColor(RGB(28,28,90));
pDC-> SetBkColor(RGB(255,255,255));
return (HBRUSH) (m_Brush. GetSafeHandle());
case CTLCOLOR_BTN:
pDC-> SetTextColor(RGB(28,28,90));
pDC-> SetBkColor(RGB(204,231,170));
return (HBRUSH) (m_Brush. GetSafeHandle());
case CTLCOLOR_DLG:
pDC-> SetTextColor(RGB(28,28,90));
pDC-> SetBkColor(RGB(227,242,208));
return (HBRUSH) (m_Brush. GetSafeHandle());
default:
return hbr;
}
}
这个函数貌似没起到作用,各静态文本框背景都是灰色。帮忙看看啥问题。。。
------解决方案--------------------
去掉这句:
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
并这么改最后两句:
default:
return m_Brush;
同时,你得赋给m_Brush这个变量的值
m_Colour=RGB(255,255,255);
m_Brush=CreateSolidBrush(m_Colour);
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
HBRUSH CMatrixCtrlDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何属性
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
switch(nCtlColor)
{
case CTLCOLOR_STATIC:
pDC-> SetTextColor(RGB(28,28,90));
pDC-> SetBkColor(RGB(227,242,208));
return m_Brush;
case CTLCOLOR_LISTBOX:
pDC-> SetTextColor(RGB(28,28,90));
pDC-> SetBkColor(RGB(255,255,255));
return (HBRUSH) (m_Brush. GetSafeHandle());
case CTLCOLOR_EDIT:
pDC-> SetTextColor(RGB(28,28,90));
pDC-> SetBkColor(RGB(255,255,255));
return (HBRUSH) (m_Brush. GetSafeHandle());
case CTLCOLOR_BTN:
pDC-> SetTextColor(RGB(28,28,90));
pDC-> SetBkColor(RGB(204,231,170));
return (HBRUSH) (m_Brush. GetSafeHandle());
case CTLCOLOR_DLG:
pDC-> SetTextColor(RGB(28,28,90));
pDC-> SetBkColor(RGB(227,242,208));
return (HBRUSH) (m_Brush. GetSafeHandle());
default:
return hbr;
}
}
这个函数貌似没起到作用,各静态文本框背景都是灰色。帮忙看看啥问题。。。
------解决方案--------------------
去掉这句:
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
并这么改最后两句:
default:
return m_Brush;
同时,你得赋给m_Brush这个变量的值
m_Colour=RGB(255,255,255);
m_Brush=CreateSolidBrush(m_Colour);