描述:
用一个下拉组合框选择不同的串口,当选择了一个不存在的串口时,系统弹出一个“Invalid Port Number”对话框,然后不知返回到何处去了,后面的语句再也无法执行。我的本意是如果新串口不存在,还是恢复打开原来的串口。请高手帮忙,谢谢!
程序代码如下:
void CFormDialogView::OnSelendokComport()
{
CComboBox* pCombo_Com = (CComboBox*)GetDlgItem(IDC_COMPORT);
int iPortNew = pCombo_Com->GetCurSel()+1; //获取选择的串口号
if(m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(FALSE); //关闭当前使用的串口
if (iPortNumber != iPortNew) // iPortNumber为全局变量:串口号
{
m_ctrlComm.SetCommPort(iPortNew); // 选择新串口
m_ctrlComm.SetPortOpen(TRUE) ; //打开新串口
//就是在此处,程序没有返回来,不知跳到哪里去了。
if(!(m_ctrlComm.GetPortOpen()))
{
AfxMessageBox("没有此串口或串口已被占用! 请选择另外的串口");
m_ctrlComm.SetCommPort(iPortNumber); // 恢复原串口
m_ctrlComm.SetPortOpen(TRUE) ; // 打开原串口
}
else
iPortNumber = iPortNew ; // 设置新的串口号
}
}