打印

菜鸟用vc6遇到的问题

[复制链接]
1348|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuandaoxy|  楼主 | 2008-1-17 22:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想在接收数据的对话框里限制数据的长度,目的是

我把下位机的时钟数据传上来,时钟每秒变化一次

例如 12点:39分:48秒,对话框里只显示8个字符

可以看到秒在变化,我用传口调试助手每次显示都会自动换行代码如下

我改变了BYTE rxdata[2048]; 里的2048好像没有反应,那位指点一下

void CSCommTestDlg::OnComm() 
{
    // TODO: Add your control notification handler code here
    VARIANT variant_inp;
    COleSafeArray safearray_inp;
    LONG len,k;
    BYTE rxdata[2048]; //设置BYTE数组
    CString strtemp;
    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存放
            m_strEditRXData+=strtemp;  //加入接收编辑框对应字符串    
        }
    }
    UpdateData(FALSE);  //更新编辑框内容
}

相关帖子

沙发
dai_weis| | 2008-1-25 12:27 | 只看该作者

做一个消息

收到数据后,发送一个消息,在消息响应函数里处理数据,根据你需要的长度和位置
也可以使用多线程,一个线程用来接收数据,主线程通过消息处理收到的数据

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

855

主题

1044

帖子

4

粉丝