自己顶一下,怎么不能触发串口响应函数啊?映射ACTIVEX事件的语句也有

解决方案 »

  1.   

    也许是某些设置不对或没有设置,这里有个例子,去参考下吧
    http://download.csdn.net/detail/zcnc2012/8123185
      

  2.   

    嗯,谢谢,例子还没看,还没积分下,正在弄,看网上说的方法,需要在cpp中加映射,以及在.h中定义,我的是自动就有的,是这个吗
      

  3.   

    实现串口通讯接收消息
    //自定义一个消息
    const CM_RECEIVE = WM_USER+100;
    //消息处理函数
    afx_msg void OnRecieveData(WPARAM wParam,LPARAM lParam);
    //添加消息映射
    ON_MESSAGE(CM_RECEIVE,OnRecieveData)
    //自定义消息处理函数,用于接收消息
    void CSeriesPortDlg::OnRecieveData(WPARAM wParam, LPARAM lParam)
    { DWORD res,factbyte; memset(DataBuffer,0,1024); //初始化数据缓冲区
    COMSTAT rst; ClearCommError(hCom,&res,&rst);//清空串口错误标志,记录当前通信状态 rOverLaped.hEvent = CreateEvent(NULL,TRUE,FALSE,NULL); //创建一个事件对象
    if (ReadFile(hCom,DataBuffer,rst.cbInQue,&factbyte,&rOverLaped))  //读取数据到缓冲区中
    {
    DataBuffer[rst.cbInQue]= 0;
    IsStop = FALSE;
    }
    else
    {
    res = WaitForSingleObject(rOverLaped.hEvent,5000);
    }
    IsStop = FALSE;
    MessageBox(DataBuffer);
    }