MFC编程中怎样实现,如果编辑框里的数大于100,就让编辑框变红色?
添加对对话框WM_CTLCOLOR事件的处理函数,然后增加如下代码:
//CMFCTestDlg是我自己的测试对话框类
//IDC_EDIT_TEST是编辑框的控件ID
//我这里没有给编辑框加控件变量
HBRUSH CMFCTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
//这里判断是否是需要处理的控件
if (pWnd->GetDlgCtrlID() == IDC_EDIT_TEST)
{
//获取编辑框的值,并且判断是否大于100
CEdit *pEdit = (CEdit *)GetDlgItem(IDC_EDIT_TEST);
CString strTmp;
pEdit->GetWindowText(strTmp);
int iTmp = atoi(strTmp);
if (iTmp > 100)
{
//如果大于100,返回文本颜色为红色
pDC->SetTextColor(RGB(255, 0, 0));
}
}
// TODO: Return a different brush if the default is not desiredr
return hbr;
}
效果:
谢谢!那如果编辑框是在第二个弹出的对话框中,就给第二个对话框添加处理函数吧?你的附图效果很棒啊!
恩,编辑框在哪个对话框上,就添加该对话框类WM_CTLCOLOR事件的处理函数