请教VC中关于SetItemText()的用法。 10
我知道SetItemText(0,1,“23”)是显示23,或者SetItemText(0,1,k)是显示k所代表的一个值。但是如果我要用SetItemText()显示一...
我知道SetItemText(0,1,“23”)是显示23,或者SetItemText(0,1,k)是显示k所代表的一个值。但是如果我要用SetItemText()显示一串16进制的代码应该怎么操作,例如要显示7F 7F 00 01 E3 7D 7D,由于这串代码不是一个变量就可以表示的,所以不能用k来代替,假如它是一个需要显示的连续接收到的命令。或者不用SetItemText(),可以用其他函数实现吗?还有就是补充一个问题,在VC++中,#define预处理命令应该在哪个文件的什么位置定义,肯定不会在例如***Dlg.h的C***Dlg类中定义吧?
我要显示的数据是从串口接收到的一连串数据,所以应该不能采用2楼所说的Format形式的手动输入吧?再补充一下,就是#define预处理命令是应该在哪个位置定义呢?是在Resourse.h里定义吗? 展开
我要显示的数据是从串口接收到的一连串数据,所以应该不能采用2楼所说的Format形式的手动输入吧?再补充一下,就是#define预处理命令是应该在哪个位置定义呢?是在Resourse.h里定义吗? 展开
3个回答
展开全部
加入数据存在unsigned char data[]数组里,长度为n(下标0~n-1)
要显示每个字节的十六进制可以用以下方法:
CString strAllData,strChar;
for(int i=0;i<n;i++)
{
strChar.Format("%X ",data[i]); //格式化单个字符为16进制格式,x为小写十六进制,X为大写
strAllData.Insert(strAllData.GetLength(),strChar); //将当前字符加入到另一个串末尾
}
SetItemText(0,1,strAllData); //把格式化好的串strAllData显示出来
要显示每个字节的十六进制可以用以下方法:
CString strAllData,strChar;
for(int i=0;i<n;i++)
{
strChar.Format("%X ",data[i]); //格式化单个字符为16进制格式,x为小写十六进制,X为大写
strAllData.Insert(strAllData.GetLength(),strChar); //将当前字符加入到另一个串末尾
}
SetItemText(0,1,strAllData); //把格式化好的串strAllData显示出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是太明白你的意思,不过假如说是类似以下
ITEM1 r1 r2 r3
7f 7f 00
那么是每次要用itoa()转成16进制然后InsertItem(0,"7f");SetItemText(0,1,"7f");SetItemText(0,2,"00");
假如是ITME1 r1
7f 7f 00
那么应是CString strOutput;
char szTmp[100];
然后把每个数用_itoa转成字符形式,再strOutput += szTmp后,再InsertItem
ITEM1 r1 r2 r3
7f 7f 00
那么是每次要用itoa()转成16进制然后InsertItem(0,"7f");SetItemText(0,1,"7f");SetItemText(0,2,"00");
假如是ITME1 r1
7f 7f 00
那么应是CString strOutput;
char szTmp[100];
然后把每个数用_itoa转成字符形式,再strOutput += szTmp后,再InsertItem
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CString str;
str.Format(_T("%x,%x,%x"),0x7F ,0x7F ,0x00);
SetItemText(0,1,str)
str.Format(_T("%x,%x,%x"),0x7F ,0x7F ,0x00);
SetItemText(0,1,str)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询