请问在VC++编程中,如何让MFC编辑框知道输入的数是16进制的?
想做一个通信协议校验器小程序,因为协议的帧是以16进制表示的,所以在MFC编辑框中,要让编辑框识别输入的数是16进制,并且通过算法处理后,输出也以16进制表示?求大神!...
想做一个通信协议校验器小程序,因为协议的帧是以16进制表示的,所以在MFC编辑框中,要让编辑框识别输入的数是16进制,并且通过算法处理后,输出也以16进制表示?求大神!
展开
4个回答
展开全部
建议在编辑框前面加2个单选框,十进制和十六进制的,默认为十六进制。选择十进制的话,在程序里自己转换成十六进制的数据使用,这样就能很好的解决这个问题了。
更多追问追答
追问
你意思是说MFC编辑框里有选项是默认输入的数是16进制的吗?
追答
就像windows系统里面的科学计算器类似的,它默认的是十进制,也可以选择二进制、八进制和十六进制进行切换选择。单选按钮可以用GetCheck()和SetCheck()处理解决就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、采用字符串形式输入:0x1A
2、采用类似ITOA函数转换
3、更多交流参考我空间文章。
2、采用类似ITOA函数转换
3、更多交流参考我空间文章。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//判断输入的是不是16进制的字符
BOOL CXORDlg::AFisxdigit(CString str)
{
int strLength1 = str.GetLength() + 1;
char strA[10];
memset(strA,0, sizeof(bool) * 10);
strncpy(strA, str, strLength1);
CString Sta,ok,err="";
int i;
for(i = 0; strA[i] != 0; i++)
{
if(isxdigit(strA[i]))
{
// printf("%c is a hexadecimal digits\n", strA[i]);
ok += strA[i];
// return true;
}
else
{
err += strA[i];
// return false;
}
}
Sta = "你输入的“";
Sta += err;
Sta += "”不是十六进制的字符";
if (err=="")
return true;
else
{
AfxMessageBox(Sta, MB_ICONERROR | MB_OK);
return false;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询