当前位置: 代码迷 >> VC/MFC >> MFC入门学习-编者款
  详细解决方案

MFC入门学习-编者款

热度:85   发布时间:2016-05-02 03:39:52.0
MFC入门学习---编辑款
 
如图所示当输入为499时,怎么处理才能确定为数据0x499,也就是在此编辑款内输入为499,即表示16进制数0x499.不知道怎么处理还望大神们指点。

现在可以处理为十进制整数,如下:
FrameID  =  m_EditFrameID;
UpdateData(false);
id = atoi(FrameID);
其中id为UINT,FrameID 为CString,而m_EditFrameID为IDC_EDIT_FRAMEID关联变量。

希望有人可以指点我。谢谢
------解决思路----------------------

int aa = 499;
int i=0,num=0;
int arr[8] = {0};
while(aa>0)
{
arr[i] = aa % 10;
aa = aa/10;
++i;
}

for(int j=0;j<i;++j)
{
num += arr[j]*((int)pow(16.0,j));
}

纯手敲,没验证,你试试看最后的num的值是0x499,即1177不?是的话自己去封装个函数就好了
至于你字符串499到int aa = 499,自己去转吧
------解决思路----------------------
按数学的,直接算
499,是16进制的
就是9+16*9+4*16*16
------解决思路----------------------
既然你能获取到编辑框中内容,那就先判断数据的合法性,然后转成int类型的十进制数,最后自己写一个十进制转十六进制的算法去判断十六进制数的具体数值
------解决思路----------------------
_tcstoul(.., NULL, 16)
------解决思路----------------------
既然是十六进制
这个编辑框是要能接收数字以外的字符的
------解决思路----------------------
先获取编辑框的值,然后按16进制 处理
  相关解决方案