现在出现如下问题: 1。接收框的数据和teechart的曲线需要一段时间才能将接受的数据显示出来
                   2. 不能实现滚动显示
                   3.基于的数据室正弦波,但显示的却不是正弦波
我是初学者,以这个项目争取入门,现求助各位大侠,帮我看一下部分代码,如何解决问题!正纠结中,想尽快解决问题,拜托!如何知道怎样解决,请告诉我具体的代码 ,谢谢!
BOOL CCommDlg::OnInitDialog()
{
CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
} // Set the icon for this dialog.  The framework does this automatically
//  when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon

// TODO: Add extra initialization here
m_com.SetCurSel(0);
m_speed.SetCurSel(2);
    //m_Comm.SetInBufferSize(4096); //接收缓冲区
   //m_Comm.SetOutBufferSize(1024);//发送缓冲区
   // m_Comm.SetInputLen(0);//设置当前接收区数据长度为0,表示全部读取
    m_Comm.SetInputMode(1);//以二进制方式读写数据
    m_Comm.SetRThreshold(1);//接
m_Comm.SetInputLen(0); //设置当前接收区数据长度为0
m_Comm.GetInput(); 
//((CSeries)m_ctrlchart.Series(0)).FillSampleValues(50);
SetTimer(1,1000,NULL);
OnTchart1();

return TRUE;  // return TRUE  unless you set the focus to a control
}
void CCommDlg::OnComm() 
{
if(stop)return;
double dValue;
 VARIANT variant_inp;
    COleSafeArray safearray_inp;
    LONG len,k;
    BYTE rxdata[9000]; //设置BYTE数组 An 8-bit integerthat is not signed.
    CString strtemp,tempdata,usaldata;
     if(m_Comm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
    { ////////以下你可以根据自己的通信协议加入处理代码
        variant_inp=m_Comm.GetInput(); //读缓冲区
//m_Comm.SetInBufferCount(0);
//m_Comm.SetInBufferSize(4096 );
        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("%f",bt); //将字符送入临时变量strtemp存放
             m_ReceiveData+=_T(strtemp); //加入接收编辑框对应字符串
 
           usaldata+=strtemp;




}
if(m_ReceiveData != '/n')//若没接收完一串完整的字符串则继续接.对应下位机程序协议
{
tempdata=usaldata;
usaldata = "";//清空字符串
}
dValue= atof(tempdata); //将字符串转换为浮点数
((CSeries)m_ctrlchart.Series(0)).AddXY(m_time++,dValue,NULL,RGB(0,255,0));
              }
             UpdateData(FALSE);
}
void CCommDlg::OnTchart1()
{
// TODO: 在此添加命令处理程序代码

((CSeries)m_ctrlchart.Series(0)).Clear();
}
 void CCommDlg::OnTimer(UINT_PTR nIDEvent)
{
if (((CSeries)m_ctrlchart.Series(0)).get_Count()>50)
           ((CSeries)m_ctrlchart.Series(0)).Delete(0);

CDialog::OnTimer(nIDEvent);
// TODO: Add your message handler code here and/or call default
}