mfc-用MFC的编辑框怎么显示16进制

问题描述

用MFC的编辑框怎么显示16进制
从串口收的数据,想直接用16进制显示,怎么做?在MFC的编辑框里显示~

解决方案

// TODO: 在此处添加消息处理程序代码
//从串口接收数据并显示在编辑框中
VARIANT variant_inp;
COleSafeArray safearray_inp;
long len k;
byte rxdata[512]; //设置BYTE数组
CString strtemp;
unsigned short CRC16 = 0;
short temp[4];
short temp1[3];
float temp_y_axis[4];
if (m_cComm.get_CommEvent() == 2) //值为表示接收缓冲区内有字符
{
variant_inp = m_cComm.get_Input(); //读缓冲区消息
safearray_inp = variant_inp; //变量转换
len = safearray_inp.GetOneDimSize(); //得到有效的数据长度
for (k = 0; k < len; k++)
safearray_inp.GetElement(&k rxdata + k);
CRC16 = CRC_CHECK(rxdata len);//CRC16校验
if (CRC16 == 0&& View_Flag ==TRUE)
{
for (k = 0; k < 4; k++) //将数组转换为CString型变量不包含校验位
{
temp[k] = (short)((rxdata[2 * k + 1] << 8 )| (rxdata[2 * k]));
temp_y_axis[k] = (float)temp[k];
m_plot.AddNewPoint(m_time temp_y_axis[k] k);
}
m_time += 0.20f;
}
if (CRC16 == 0)
{
temp1[0] = (short)((rxdata[9] << 8) | (rxdata[8]));
temp1[1] = (short)((rxdata[11] << 8) | (rxdata[10]));
temp1[2] = (short)((rxdata[13] << 8) | (rxdata[12]));
m_OpenGL.m_xAngle = temp1[1] / 10;
m_OpenGL.m_yAngle = -temp1[2] / 10;
m_OpenGL.m_zAngle = temp1[0] / 10;
m_OpenGL.InvalidateRect(NULL FALSE);
}
for (k = 0; k < len; k++) //将数组转换为CString型变量
{
if (k == len - 1)
{
char bt = (char)(rxdata + k); //字符型
strtemp.Format(""%c"" bt); //将字符送入临时变量strtemp存放
m_strRecvData += strtemp; //加入接收编辑框对应字符串
}
}
}
SetDlgItemText(IDC_EDIT_RECV m_strRecvData);
UpdateData(FALSE); //更新编辑框内容
m_strRecvData.Empty();

解决方案二:
MFC编辑框不覆盖显示

解决方案三:
我问得不是这个问题,比如串口HEX发送""60 fe ad"",那我收到以后要HEX显示“60 fe ad”

解决方案四:
你的数据是通过CRC16校验发送的吗?

时间: 2024-11-03 12:34:27

mfc-用MFC的编辑框怎么显示16进制的相关文章

socket接收并显示16进制的数据

问题描述 socket接收并显示16进制的数据 这是编写的客户端代码,接收服务器发送的16进制的数据,但是现实不出来. 解决方案 byte []data=new byte [1024]; int i=0; for(i=0;i<data.length;i++) textbox1.Text+=data[i].ToString("X2");//转成16进制字符串显示 解决方案二: 16进制数据,你需要转换为字符串等才能显示,它本身不一定是可见字符 解决方案三: 一个字节一个字节的读,然

thinkphp-用thinkPHP开发的后台,现在后台的内容编辑框不显示怎么办?

问题描述 用thinkPHP开发的后台,现在后台的内容编辑框不显示怎么办? 解决方案 样式表用错了,或 textarea 标记未封闭 解决方案二: 用浏览器F12调试一下,看看不是脚本或样式冲突了.

C++基于对话框的程序,运行时候编辑框不显示颜色,字体也不变化,怎么回事?

问题描述 C++基于对话框的程序,运行时候编辑框不显示颜色,字体也不变化,怎么回事? 我添加三处代码如下:就是不显示颜色和字体 HBRUSH CADODataBase2Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { try { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Change any attributes of the DC here if

mfc 如何获取字符串中的16进制数据

问题描述 mfc 如何获取字符串中的16进制数据 mfc 如何获取字符串中的16进制数据,如字符串"0x123F"或"123F",获取16进制数据0x123F 解决方案 C++实现二进制.八进制.十进制.十六进制的相互转换 解决方案二: 这种算法只能针对特殊的格式字符串吧,不能做到万能的算法. 你这种需求你肯定知道字符串的大致格式,那么你就只有根据你的需求来匹配16进制的. 比如你可以搜索0x开头的,然后在后面继续匹配. 解决方案三: 先读取字符串,然后根据你的格式

mfc串口数据解析-如何从串口接收一段16进制数据中 读取需要的数据

问题描述 如何从串口接收一段16进制数据中 读取需要的数据 串口接收到的16进制数据: 53 d4 ac 4e d4 ac 2d 30 30 30 b4 2e 36 b2 8d 0a 53 d4 ac 4e d4 ac 2d 30 30 30 b4 2e 36 b2 8d 0a 53 d4 ac 4e d4 ac 2d 30 30 30 b4 2e 36 b2 8d 0a . . . 串口接收到的ASCII数据: ? k ? ? ? ? s ? ? k u ? ? ? k ? ? ? ? s ?

vb 串口发送16进制-Vb将文本框里输入的十进制数据按chr(13)分割,然后转换成&amp;amp;amp;h+16进制字符串形式

问题描述 Vb将文本框里输入的十进制数据按chr(13)分割,然后转换成&h+16进制字符串形式 例如文本框里输入253chr(13)255chr(13),要求输出结果书"&HFD" "&HFF",看了好多算法,但是还是没有研究出来. 我自己做的结果如下 Private Sub Text2_KeyPress(KeyAscii As Integer) Dim tmp() As String Dim aa As String * 1 Dim rd

51单片机串口通信-51单片机中的串口通信发送10(16进制)以上显示不正确

问题描述 51单片机中的串口通信发送10(16进制)以上显示不正确 串口通信中,向单片机发送数据控制LED灯亮实验中 发01,02.04.08 依次是 第1 2 3 4 个灯亮 而发送 10 就成第5 6 个一起亮了,然后发20 .40 是第7 和 第 8 个: 发 80 就全灭了 , 这是啥情况啊. #include unsigned char a,flag; void init(); void main() { init(); while(1) { if(flag == 1) { ES =

16进制的正数为何显示为10进制数之后就为负数,如何使他总为正数,在线等!!大神,我很急!!

问题描述 16进制的正数为何显示为10进制数之后就为负数,如何使他总为正数,在线等!!大神,我很急!! 如下就是读取NFC标签数据的代码,并在调试窗口将读出的数据显示出来 我的问题是:NFC里面的数据本来就全是正数,但是读取出来后在电脑端显示却为负数,(我猜测是不是,在NFC里面的数全是16进制的,然后手机端读取出来后显示为10进制的数时,出现编码错误,从而导致变为负数了)那么如何将读取出的数据全部显示为正数,求大神赐教,在线等,急!! byte[] result = tagUtil.readA

c-51单片机这个函数如何显示10进制整数

问题描述 51单片机这个函数如何显示10进制整数 各位大神,小弟在使用12864显示函数的时候发现只能显示字符,不能显示数字,请问该怎么解决,附显示函数. showLine(2,0,lcd_buffer,"显示%c",'a');能够显示a showLine(2,0,lcd_buffer,"显示%d",10);屏幕一片空白 求助各位大神,想显示10进制数字该怎么用这个函数. void showLine(const uchar x,const uchar y,uchar