注册 登录
编程论坛 VC++/MFC

串口收发数据问题

青紫墨 发布于 2016-10-09 12:35, 3161 次点击
各位大神帮帮忙哈,代码的目的是:每次发送到对方的的内容显示到接收框,接收的内容也同样显示到接收框(显示顺序按时间)
现在出现的问题是:每次接受的数据会把前一次显示在接收框的内容(这个内容指显示的发送的内容)清除,请问这个该怎么解决呢
这是我收发数据的代码:
//接收数据
LONG CSerialPortTestDlg::OnComm(WPARAM ch, LPARAM port)
{
     
    m_strEditReceiveMsg += (char)ch;
    UpdateData(FALSE);
    return 0;
}
//发送数据
void CSerialPortTestDlg::OnBnClickedButtonSend()
{
    // TODO: 在此添加控件通知处理程序代码
    CString str1;
    if (!m_bSerialPortOpened)
    {
        return;
    }
   
    UpdateData(true);
    m_SerialPort.WriteToPort((char *)(LPCTSTR)m_strEditSendMsg);
    GetDlgItemText(IDC_EDIT_SEND,str1);
    UpdateData(false);
    str1 += _T("\r\n");
    int lastLine = m_EditRecv.LineIndex(m_EditRecv.GetLineCount()-1);
    m_EditRecv.SetSel(lastLine+1 , lastLine+2 , 0);   
    m_EditRecv.ReplaceSel(str1);  // 在最后一行添加新的内容
     
   
}
1 回复
#2
weidelong2017-03-28 16:01
你的edit设置多行没有?
1