基于MFC的对话框工程,使用API串口编程问题 
当串口有数据来 如何用API函数(不用控件) 触发消息给窗口。换句话说:如何设置
当串口有数据来 (程序设为后台自动检测),
windows自动发消息给窗口(发什么消息)?谢谢

解决方案 »

  1.   

    类似
    MFC控件 Communications Control的
    串口事件消息处理函数OnComm() 每当串口接收到数据,就会产生一个串口接收数据缓冲区中有字符的消息事件,API如何实现串口接收消息?
      

  2.   

    BOOL CMyComm Dlg::OnInitDialog() //MyComm
    {CreateFile(
    GetCommState(h,&dcb)
    dcb.BaudRate=....SetCommState(h,&dcb)
      COMMTIMEOUTS timeout; 
      timeout.ReadIntervalTimeout=100;
    ...
    }把下面的放哪呢?
    m_overlappedRead.hEvent=CreateEvent(NULL, TRUE, FALSE, NULL);bReadStatus = ReadFile( m_hIDComDev, buffer, 
    dwBytesRead, &dwBytesRead, &m_OverlappedRead ); 
    if(!bReadStatus) 

    if(GetLastError()==ERROR_IO_PENDING) 
      { 
       WaitForSingleObject(m_OverlappedRead.hEvent,1000); 
       return ((int)dwBytesRead); 
       } 
    return(0); 

    return ((int)dwBytesRead); 
      

  3.   

    "可以就地将数据放在与先定义的缓冲里,等接受完后再用自定义的方式通知主窗口"
    是在初试化打开串口时,定义接收缓冲,一旦满或有字符,发消息给主窗口?SENDMESSAGE(XXX)?ON received_XXX()
    {
    ...
    }
    ?谢谢
      

  4.   

    BBirdlyh(BBird) :不好意思 你手边有串口事件触发读的现成的VC API代码吗?谢谢