怎么在MFC editbox事件中检查输入的表示16进制数的CSting字符串是否合法?求详解

 我来答
rocket_torpedo
2013-03-26 · TA获得超过547个赞
知道答主
回答量:134
采纳率:0%
帮助的人:109万
展开全部
bdhming错了,具体应该这样实现:
CString str;
((CEdit*)GetDlgItem(IDC_EDIT2))->GetWindowText(str);//IDC_EDIT2是editbox的ID
str.MakeLower();
for(int i=0;i<str.GetLength();i++)
{
CString ch=str.GetAt(i);
if(!(ch<=_T("9")&&ch>=_T("0")||ch<=_T("f")&&ch>=_T("a")))
MessageBox("error!");
}
归悦欣cf
2013-03-26 · TA获得超过1443个赞
知道大有可为答主
回答量:4250
采纳率:59%
帮助的人:1319万
展开全部
在输入改变事件函数中读取输入的字符串,自己进行分析是否合法。
追问
能不能详细一点。
追答
当在编辑框中输入字符的时候,会有一个消息产生,在这个消息函数里获取编辑框中的字符串:CString str;m_edit.GetWindowText(str);这里假设你的编辑控件对应的对象为m_edit,这样获取编辑框的内容就存放在字符串str中,这样就可以进行判断了。整个代码如下:
CString str;
m_edit.GetWindowText(str);
for(int i=0;i_T("f"))
{
if(ch>=_T("A")&&ch<=_T("F"))
return;
MessageBox(_T("输入的不是有效的十六进制数"));
return;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式