OnCtlColor 改变控件文本颜色问题?谢谢~~
对话框,domodal 弹出,上面有几个CEdit控件 和静态文本控件CStatic
我想实现,输入时间的时候,不能小于0。在时间控件失去焦点时。
如果输入非法,会在静态文本中显示红色的字体提示输入错误。
可是,输入控件失去焦点时,本没有响应OnCtlColor这个函数。
OnCtlColor 调试的是很这个函数在初始化的时候调用了。
后面不会自动触发吗 ?
请问我也怎么样才能实现这样的功能呢 ?
非常感谢~~~
//失去焦点
void MyDlg::OnKillFocusTime()
{
UpdateData(TRUE);
if(m_Time < 0 || m_Time > 2^32)
{
m_bIsChangeColor = true;
}
else
{
m_bIsChangeColor = false;
}
}
HBRUSH MyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改DC 的任何属性
switch(pWnd->GetDlgCtrlID())
{
case IDC_TIME:
ChangeDCColor(pDC);
break;
case IDC_SPEED:
break;
case IDC_UP_ANGLE:
break;
default:
pDC->SetTextColor(RGB(0, 0,0));
break;
}
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}
//改变DC颜色
void MyDlg::ChangeDCColor(CDC * pDC)
{
if (m_bIsChangeColor)
{
pDC->SetTextColor(RGB(255, 0, 0));
}else
{
pDC->SetTextColor(RGB(0, 0, 0));
}
}