使用MSCOMM控件,在程序中打开串口后,点击右上角关闭窗口的按钮退出程序时,弹出一个“端口已打开”的对话框。
而如果先将串口关闭后,再退出程序,则不会出现该对话框。请问应该如何解决这个问题?
谢谢。

解决方案 »

  1.   

    打开之前判断一下是否已经打开是的话先关闭,
    退出之前先判断是否关闭,是的话在close
      

  2.   

    在析构函数、WM_CLOSE、WM_DESTROY消息中使用m_Comm.SetPortOpen(FALSE);
    都不行因为在这句话执行之前,那个框就已经弹出来了。
      

  3.   

    给你一段原代码,实际工程里用的,没问题:if(m_MSComm.GetPortOpen()) m_MSComm.SetPortOpen(FALSE); //关闭串口
    if(m_MSComm.GetPortOpen()) m_MSComm.SetPortOpen(TRUE);  //打开串口
    else AfxMessageBox("串口故障");
      

  4.   

    发出的代码少了一个!号,特更正如下:if(m_MSComm.GetPortOpen()) m_MSComm.SetPortOpen(FALSE); //关闭串口
    if(!m_MSComm.GetPortOpen()) m_MSComm.SetPortOpen(TRUE); //打开串口
    else AfxMessageBox("串口故障");