程序进行做串口通讯,界面即时显示通讯信息。程序在用while循环read(先向串口发送一个请求命令,等待串口返回数据)时,整个窗口
没有一点反映都没有(不能拖动,变大变小)直到通讯朝时(我设置30秒,到了30秒人没有
数据就显示超时)或读取到数据。
请问如何让程序在通讯时,不停读串口时,也能拖动。

解决方案 »

  1.   

    串口通信读写应该使用Worker线程。
      

  2.   

    或者你自己重载一个消息循环。MSG msg;
    if(::PeekMessage(&msg,NULL,0,0,PM_REMOVE)){
    if(msg.message==WM_QUIT)
    {
      ::PostQuitMessage(-1);
    }if(!AfxGetApp()->PreTranslageMessage(&msg))
    {
      ::TranslateMessage(&msg);
      ::DispatchMessage(&msg);
    }
      

  3.   

    把以上代码,加到你的while循环中。
      

  4.   

    CreateThread()
    把功能写在线程函数里面,
    需要线程同步处理,
    WaitforSingleObject()