关于OnCtlColor()的问题
我做了一个小练习。在对话框中有一个CComboBox和CEdit控件
函数定义如下:
HBRUSH CCTEST2Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
if(pWnd->GetDlgCtrlID() == IDC_EDIT1)
{
pDC->SetTextColor(RGB(255,0,0));
pDC->SetBkColor(RGB(50,50,50));
}
if(pWnd->GetDlgCtrlID() == IDC_COMBO1)
{
pDC->SetTextColor(RGB(0,0,255));
pDC->SetBkColor(RGB(0,0,0));
}
return m_Brush;
}
结果两个控件的文字颜色和背景颜色都是EDIT1的颜色,做了很多测试,都是这样的结果。而且IDC_EDIT1与IDC_COMBO1的ID值也是不同的。如果把IDC_COMBO1的那段代码去掉,结果IDC_COMBO1依然是IDC_EDIT1的颜色,如果把IDC_EDIT1的那段代码去掉,结果IDC_COMBO1就是系统的原始颜色了。搞不清楚,求教大虾给解答一下。