首页
社区
课程
招聘
在写一个小垃圾程序,遇到了问题,请各位C高手指点。
发表于: 2004-11-3 10:53 8501

在写一个小垃圾程序,遇到了问题,请各位C高手指点。

2004-11-3 10:53
8501
有引用了一个LIB内的函数,原型是TestOK(&handle,&high,&withe);
其中high,withe为WORD类型,现在我想从两个EDIT的控件中由用户输入这二个值,但EDIT不认WORD,不知如何将其接受的值转换成WORD类型。

如我在EDIT1绑定了m_high,在EDIT2绑定了m_withe,类型为int,但是我在调用TestOK(&handle,&m_high,&m_withe)时不出错,但是在控件中输入0XFFFF和0X0001时和以下代码的反应完全不同。

WORD high,withe;
high = 0xffff;
withe = 0x0001;
TestOK(&handle,&high,&withe);

怎样才能从EDIT控件里取得与high,withe同类型的值呢?最好能在EDIT里填入FFFF,而不用输入0XFFFF。感谢

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (8)
雪    币: 199
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
先用GetDlgItemText或得字符串(,譬如结果为str = "FFFF")

然后用sscanf转换为DWORD ( 或者说是unsigned int)
sscanf( str, "%X", &result);

然后用LOWORD( result)取低位
l_re = LOWORD( result);

估计应该就ok了
2004-11-4 08:27
0
雪    币: 229
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
最初由 playar 发布
先用GetDlgItemText或得字符串(,譬如结果为str = "FFFF")

然后用sscanf转换为DWORD ( 或者说是unsigned int)
sscanf( str, "%X", &result);

........


你有QQ否?向你请教。

我在绑定某一个EDIT控件时的变量为m_high,类型为UINT,然后用GetDigItemText得到输入的值,UINT本身和WORD类型一样为无符号整型(0~65535),但我想用户输入的是0000~FFFF,而不是10进制数,如何办?
2004-11-4 10:44
0
雪    币: 199
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
qq就算了吧
UINT不是WORD,WORD长度为2byte, UINT = DWORD = 4byte, 所以要用
LOWORD操作符来取低位WORD
如果要限制用户输入,只能监视用户输入的是啥,不是0~F的忽略掉
sscanf里用"%X"是按16禁止转换
10进制的用"%d"
2004-11-4 12:34
0
雪    币: 229
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
WORD high,withe

CString p1,p2,retu;
        int nLength1 = m_p1.LineLength();
        int nLength2 = m_p2.LineLength();
        m_p1.GetWindowText(p1);
        m_p2.GetWindowText(p2);
        if(nLength1!=4||nLength2!=4)
        {
                AfxMessageBox("请输入4位!");
                return;
        }

2004-11-4 19:21
0
雪    币: 199
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
先去查一下sscanf怎么用吧,我上面写了个例子,可是好像你根本没看懂
2004-11-5 00:01
0
雪    币: 229
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我想要用户输入的是4CEF,而程序认为是0X4CEF,感谢playar的指点.本人太菜,看看书再来吧
2004-11-5 09:09
0
雪    币: 431
活跃值: (457)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
8
itoa
2004-11-6 12:16
0
雪    币: 229
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谢谢各位,

        p1 =strtoul(pass1,'\0',16);
        p2 =strtoul(pass2,'\0',16);
就好了
2004-11-6 15:26
0
游客
登录 | 注册 方可回帖
返回
//