在使用Edit控件时,我们经常可能需要限定输入的内容,比如只能是数字、只能是字符、部分字符和数字等等。
那么我们就需要限制Edit的输入内容只能是指定的内容。下面的代码实现是我经常用的,希望对需要的人有所帮助。
首先我们要对Edit控件重载ON_EN_CHANGE事件,之后在重载的事件方法里加入下面的代码:
void CMyTestDialogInfo::OnEnChangeEditInput()
{
// TODO: 如果该控件是 RICHEDIT 控件,它将不
// 发送此通知,除非重写 CMFCPropertyPage::OnInitDialog()
// 函数并调用 CRichEditCtrl().SetEventMask(),
// 同时将 ENM_CHANGE 标志“或”运算到掩码中。
// TODO: 在此添加控件通知处理程序代码
CString strTemp=_T("");
CEdit* editHelp = ((CEdit*)(GetDlgItem(IDC_EDIT_INPUTHANDLE)));
editHelp->GetWindowText(strTemp);
int len = strTemp.GetLength();
for (int i = 0; i < len; i ++)
{
if(strTemp.GetAt(i) < '0' || strTemp.GetAt(i) > '9')
{
strTemp = strTemp.Left(i);
editHelp->SetWindowText(strTemp);
editHelp->SetSel(i,i,TRUE);
return;
}
}
}
上面的方法是可以举一反三的,大家根据需要自己修改吧!有不懂的可以留言!
转载于:https://blog.51cto.com/binge518/1144480