我用处理WM_CRLCOLOR的方法修改控件的背景颜色等属性,代码如下。
奇怪的是,编译运行之后我的IDC_EDIT16和IDC_EDIT17的背景色也同样变成了对话框中所有Combox Box的背景色。
多次重新Rebuild后均如此
而我删除IDC_EDIT16和IDC_EDIT17后,重新添加两个Edit控件,结果编译运行后又正常了。囧达人们知道是什么原因吗?HBRUSH CCurrentTestView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
if((pWnd->GetDlgCtrlID()==IDC_EDIT3)||(pWnd->GetDlgCtrlID()==IDC_EDIT4))
{
pDC->SetBkColor(RGB(177,242,242));
HBRUSH m_hbr=::CreateSolidBrush(RGB(177,242,242));
return m_hbr;
}
if((pWnd->GetDlgCtrlID()==IDC_EDIT16)||(pWnd->GetDlgCtrlID()==IDC_EDIT17))
{
pDC->SetBkColor(RGB(143,142,142));
pDC->SetTextColor(RGB(108,251,132));
HBRUSH w_hbr=::CreateSolidBrush(RGB(143,142,142));
return w_hbr;
}
pDC->SetBkMode(TRANSPARENT);
return hbr;
}
奇怪的是,编译运行之后我的IDC_EDIT16和IDC_EDIT17的背景色也同样变成了对话框中所有Combox Box的背景色。
多次重新Rebuild后均如此
而我删除IDC_EDIT16和IDC_EDIT17后,重新添加两个Edit控件,结果编译运行后又正常了。囧达人们知道是什么原因吗?HBRUSH CCurrentTestView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
if((pWnd->GetDlgCtrlID()==IDC_EDIT3)||(pWnd->GetDlgCtrlID()==IDC_EDIT4))
{
pDC->SetBkColor(RGB(177,242,242));
HBRUSH m_hbr=::CreateSolidBrush(RGB(177,242,242));
return m_hbr;
}
if((pWnd->GetDlgCtrlID()==IDC_EDIT16)||(pWnd->GetDlgCtrlID()==IDC_EDIT17))
{
pDC->SetBkColor(RGB(143,142,142));
pDC->SetTextColor(RGB(108,251,132));
HBRUSH w_hbr=::CreateSolidBrush(RGB(143,142,142));
return w_hbr;
}
pDC->SetBkMode(TRANSPARENT);
return hbr;
}
"而我删除IDC_EDIT16和IDC_EDIT17后,重新添加两个Edit控件,结果编译运行后又正常了。"
你的问题在于控件ID的值(整数)有重复,所以删除后重新添加会一切正常!