我做了一个串口和调制解调器通信的程序,
在一个函数里边,如,CTempratureView::OnTimer(UINT nIDEvent) 里边拨号,
在CTempratureView::OnCommMscomm() 里边进行数据处理
那么我如何在CTempratureView::OnTimer(UINT nIDEvent)里边判断CTempratureView::OnCommMscomm() 的数据处理完毕呢
在一个函数里边,如,CTempratureView::OnTimer(UINT nIDEvent) 里边拨号,
在CTempratureView::OnCommMscomm() 里边进行数据处理
那么我如何在CTempratureView::OnTimer(UINT nIDEvent)里边判断CTempratureView::OnCommMscomm() 的数据处理完毕呢
e.g.
在CTempratureView里声明一个成员变里BOOL m_bIsFinished;
先置为否;OnCommMscomm处理完成后置为是.用OnTimer去检查这个标志.
采取的是事件消息机制
而不是中断机制楼主这样做在DOS下是可行的,但是在windows下,这样做是不对的。
{
MSG msg;
GetMessage( &msg, NULL, 0, 0 );
TranslateMessage( &msg );
DispatchMessage( &msg );
PostMessage((BYTE)this,WM_PAINT );
} while ( !r_exitflag && GetTickCount() - lFirst < 5000 );
// 只有读完接收的字节或者5秒内没任何反应才会结束循环
r_exitflag是你在OnCommMscomm里去设置的,做完然后让其=true,如果啥也没有,5秒后就结束不知道这样做是否让你管用