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