MFC编程中怎样实现,如果编辑框里的数大于100,就让编辑框变红色?

编辑框里的数是某个结果,可能大于100,也可能小于100,变量。... 编辑框里的数是某个结果,可能大于100,也可能小于100 ,变量。 展开
 我来答
拥云庄主
2013-05-13 · TA获得超过2501个赞
知道小有建树答主
回答量:672
采纳率:100%
帮助的人:412万
展开全部

 添加对对话框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事件的处理函数
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式