我现在使用单片机和PC通信,用VC做一个界面显示接收到的数据,我使用龚建伟老师的串口通信程序能够完成十六进制在一个接收框中显示全部数据。但是我想把这些数据显示在不同的编辑框中,比如,第一个编辑框是电压,第二个编辑框是温度,怎么能够完成这个功能呢?我以前是做硬件的对VC不是很懂,望大家指教。
解决方案 »
- CMyDialog::OnOK 函数的具体代码是什么?
- 求个思路(Socket的重连)
- 怎么修改别的程序的内存,比如修改0012FF10处的内存数据
- 关于CImage的一点问题
- 求FTP上传下载源码要求能对目录上传下载
- VC下的静态链接库怎么调试?
- visual Studio 中External Depencies
- 如何用 ADSI 将用户加入 IIS Ftp 站点的管理员中?
- 请教一个问题!!在2000下用什么命令可以启动命令提示符窗口(dos窗口)并在此窗口下执行一个文件!!
- PorperSheet对话框页面转换
- status控件总在button上面
- 请教各位大侠,目前开发windows桌面程序通常用什么开发语言,与开发环境。
不同的编辑框关联不同的变量 CString类型的变量获取到数据后
UpdateData(false)
void CSCommTestDlg::OnComm()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.
CString strtemp,strdata[2];
if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{ ////////以下你可以根据自己的通信协议加入处理代码
variant_inp=m_ctrlComm.GetInput(); //读缓冲区
safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
for(k=0;k<len;k++) //将数组转换为Cstring型变量
{
BYTE bt=*(char*)(rxdata+k); //字符型
//strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放
if(m_ctrlHexDisplay.GetCheck())
strtemp.Format("%02X ",bt); //将字符以十六进制方式送入临时变量strtemp 存放,注意这里加入一个空隔
else
strtemp.Format("%c",bt); //将字符送入临时变量strtemp 存放
m_strRXData+=strtemp; //加入接收编辑框对应字符串
}
}
UpdateData(FALSE); //更新编辑框内容
}
这样可以在一个编辑框中显示收到的数据,比如我单片机发送的是十六进制的00 01 02 03,我想把00 01显示在电压的编辑框中,02 03显示在表示温度的编辑框中怎么去显示?