在使用MSCOMM控件接收数据时,有两种方式,
一种是事件方式:是当有数据到来时,调用OnComm函数
另一种是自己查询CommEvent属性的值.我现在用第二种方法,我首先使用pComm->SetOutput(varOut);发送数据,对方收到此varOut后,会返回一个表示接收结果的字符,如"X",这时CommEvent属性应该是2,表示收到数据,我的代码如下://下面这个些代码在一个函数中,按下对话框上得按钮1后执行void CDlg::OnButton1()
{
pComm->SetOutput(varOut); j=pComm->GetCommEvent();
while(j!=2)
{
j=pComm->GetCommEvent();
}
}
执行结果:
这样好像不行,程序好像永远等不到pComm->GetCommEvent()变为2!//我如果把上面这个些代码放在两个函数中,按下对话框上的两个按钮后分别执行void CDlg::OnButton1() 
{
pComm->SetOutput(varOut);
}void CDlg::OnButton2() 
{
j=pComm->GetCommEvent();
if(j==2)
AfxMessageBox("22222");
}
执行结果:
如果这样,先按按钮1,再按按钮2,按下按钮2时,就知道了pComm->GetCommEvent()变为2问题:
现在我想把发送和接收得代码放在一个函数中,是否需要延时一段时间,然后再检测pComm->GetCommEvent()得值呢?如果这样,这段延时得代码如何写?