MFC中编辑框输入限制代码求助 30
我在对话框中添加了一个编辑框控件我只想让他输入数字下面代码是控制输入数字的但是当第一个字符输入的不是数字的时候就会内存报错求各位大大帮我改改voidCKaihu::OnC...
我在对话框中 添加了一个 编辑框控件
我只想让他输入数字 下面代码 是控制输入数字的
但是当第一个 字符输入的不是数字的时候 就会 内存报错
求各位大大帮我改改
void CKaihu::OnChangeEditmm()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
// TODO: Add your control notification handler code here
static char *str=",";
char str2[3]={0,0,0};
CString text;
GetDlgItem(IDC_EDITMM)->GetWindowText(text);
int iStart=HIWORD(((CEdit*)GetDlgItem(IDC_EDITMM))->GetSel());
if(iStart!=0)
{
if(!((text[iStart-1]>='0'&&text[iStart-1]<='9')||(text[iStart-2]==str[0]&&text[iStart-1]==str[1])))
{
str2[0]=text[iStart-1];
BOOL bDB=FALSE;
if(text[iStart-1]<0)
{
str2[1]=str2[0];
str2[0]=text[iStart-2];
bDB=TRUE;
}
text.Replace(str2,"");
GetDlgItem(IDC_EDITMM)->SetWindowText(text);
if(bDB)
{
((CEdit*)GetDlgItem(IDC_EDITMM))->SetSel(iStart-2,iStart-2,-1);
}
else
{
((CEdit*)GetDlgItem(IDC_EDITMM))->SetSel(iStart-1,iStart-1,-1);
}
}
}
} 展开
我只想让他输入数字 下面代码 是控制输入数字的
但是当第一个 字符输入的不是数字的时候 就会 内存报错
求各位大大帮我改改
void CKaihu::OnChangeEditmm()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
// TODO: Add your control notification handler code here
static char *str=",";
char str2[3]={0,0,0};
CString text;
GetDlgItem(IDC_EDITMM)->GetWindowText(text);
int iStart=HIWORD(((CEdit*)GetDlgItem(IDC_EDITMM))->GetSel());
if(iStart!=0)
{
if(!((text[iStart-1]>='0'&&text[iStart-1]<='9')||(text[iStart-2]==str[0]&&text[iStart-1]==str[1])))
{
str2[0]=text[iStart-1];
BOOL bDB=FALSE;
if(text[iStart-1]<0)
{
str2[1]=str2[0];
str2[0]=text[iStart-2];
bDB=TRUE;
}
text.Replace(str2,"");
GetDlgItem(IDC_EDITMM)->SetWindowText(text);
if(bDB)
{
((CEdit*)GetDlgItem(IDC_EDITMM))->SetSel(iStart-2,iStart-2,-1);
}
else
{
((CEdit*)GetDlgItem(IDC_EDITMM))->SetSel(iStart-1,iStart-1,-1);
}
}
}
} 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询