菜鸟用vc6遇到的问题

[复制链接]
2181|1
 楼主| chuandaoxy 发表于 2008-1-17 22:10 | 显示全部楼层 |阅读模式
我想在接收数据的对话框里限制数据的长度,目的是<br /><br />我把下位机的时钟数据传上来,时钟每秒变化一次<br /><br />例如&nbsp;12点:39分:48秒,对话框里只显示8个字符<br /><br />可以看到秒在变化,我用传口调试助手每次显示都会自动换行代码如下<br /><br />我改变了BYTE&nbsp;rxdata[2048];&nbsp;里的2048好像没有反应,那位指点一下<br /><br />void&nbsp;CSCommTestDlg::OnComm()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;TODO:&nbsp;Add&nbsp;your&nbsp;control&nbsp;notification&nbsp;handler&nbsp;code&nbsp;here<br />&nbsp;&nbsp;&nbsp;&nbsp;VARIANT&nbsp;variant_inp;<br />&nbsp;&nbsp;&nbsp;&nbsp;COleSafeArray&nbsp;safearray_inp;<br />&nbsp;&nbsp;&nbsp;&nbsp;LONG&nbsp;len,k;<br />&nbsp;&nbsp;&nbsp;&nbsp;BYTE&nbsp;rxdata[2048];&nbsp;//设置BYTE数组<br />&nbsp;&nbsp;&nbsp;&nbsp;CString&nbsp;strtemp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(m_ctrlComm.GetCommEvent()==2)&nbsp;//事件值为2表示接收缓冲区内有字符<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;variant_inp=m_ctrlComm.GetInput();&nbsp;//读缓冲区<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;safearray_inp=variant_inp;&nbsp;&nbsp;//VARIANT型变量转换为ColeSafeArray型变量<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;len=safearray_inp.GetOneDimSize();&nbsp;//得到有效数据长度<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(k=0;k&ltlen;k++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(k=0;k&ltlen;k++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//将数组转换为Cstring型变量<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BYTE&nbsp;bt=*(char*)(rxdata+k);&nbsp;&nbsp;&nbsp;&nbsp;//字符型<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strtemp.Format(&quot;%c&quot;,bt);&nbsp;&nbsp;&nbsp;&nbsp;//将字符送入临时变量strtemp存放<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_strEditRXData+=strtemp;&nbsp;&nbsp;//加入接收编辑框对应字符串&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;UpdateData(FALSE);&nbsp;&nbsp;//更新编辑框内容<br />}
dai_weis 发表于 2008-1-25 12:27 | 显示全部楼层

做一个消息

收到数据后,发送一个消息,在消息响应函数里处理数据,根据你需要的长度和位置<br />也可以使用多线程,一个线程用来接收数据,主线程通过消息处理收到的数据
您需要登录后才可以回帖 登录 | 注册

本版积分规则

856

主题

1046

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部