串口触发不了OnComm事件解决办法

串口触发不了OnComm事件
我编的串口程序不能触发OnComm事件
我用其它程序试过,可以一切正常,也就是说我的硬件部分是正常的

我的程序是
1)添加Active   X,并拖到对话框中,IDC_MSCOMM1;
2)在MFC   ClassWizard中将IDC_MSCOMM1绑定到m_MSComm;
3)初始化,抄袭网上的代码:
    if(m_MSComm.GetPortOpen())   //如果串口是打开的,则行关闭串口
{
              m_MSComm.SetPortOpen(FALSE);
}

m_MSComm.SetCommPort(1);   //选择COM1
m_MSComm.SetInBufferSize(1024);   //接收缓冲区
m_MSComm.SetOutBufferSize(1024);//发送缓冲区
m_MSComm.SetInputLen(0);//设置当前接收区数据长度为0,表示全部读取
m_MSComm.SetInputMode(1);//以二进制方式读写数据
m_MSComm.SetRThreshold(3);//接收缓冲区有1个及1个以上字符时,将引发接收数据的OnComm事件
m_MSComm.SetSettings( "9600,n,8,1 ");//波特率9600无检验位,8个数据位,1个停止位

if(!m_MSComm.GetPortOpen())//如果串口没有打开则打开
                m_MSComm.SetPortOpen(TRUE);//打开串口
else
                m_MSComm.SetOutBufferCount(0);
4)在MFC   ClassWizard中添加OnComm事件,为方便测试在OnComm事件中添加
      AfxMessageBox( "shgfdhdgj ");

结果就是弹不出消息对话框,小弟非常着急,望各位大哥指点!谢谢

------解决方案--------------------

m_MSComm.SetRThreshold(3);//接收缓冲区有1个及1个以上字符时,将引发接收数据的OnComm事件


你确保下位机向上位机发送了3个以上字符吗?