edit控件,在设置了只读属性后,发现用普通的
OnCtlColor()方法,识别nCtlColor== CTLCOLOR_EDIT不能改变颜色了,
而用,nCtlColor== CTLCOLOR_STATIC确可以改变颜色。
原来MFC,把只读的EDIT当做STATIC来处理了。
HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
switch(nCtlColor)
{
case CTLCOLOR_EDIT:
//不可以改变颜色
if(pWnd->GetDlgCtrlID() == IDC_TEST_EDIT )
{
HBRUSH hbrEdit = ::CreateSolidBrush( RGB(255, 255, 255) );
pDC->SetBkColor( RGB(0, 255, 255) );
return hbrEdit;
}
case CTLCOLOR_STATIC: //可以
if(pWnd->GetDlgCtrlID() == IDC_TEST_EDIT )
{
HBRUSH hbrEdit = ::CreateSolidBrush( RGB(255, 255, 255) );
pDC->SetBkColor( RGB(0, 255, 255) );
return hbrEdit;
}
}
探讨了在MFC中如何为设置为只读的EDIT控件更改背景颜色。当使用OnCtlColor方法时,发现需要通过CTLCOLOR_STATIC而非CTLCOLOR_EDIT来实现这一目的。
3195

被折叠的 条评论
为什么被折叠?



