在VC中添加MsComm控件之后,初始化串口如下:
m_ctrlComm.SetCommPort(PortNumber); m_ctrlComm.SetInBufferSize(1024);
m_ctrlComm.SetOutBufferSize(512);
if( !m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(TRUE);//打开串口
else
AfxMessageBox("cannot open serial port");

m_ctrlComm.SetInputMode(1);
m_ctrlComm.SetSettings("9600,n,8,1"); //波特率9600,无校验,8个数据位,1个停止位
m_ctrlComm.SetRThreshold(1); 
m_ctrlComm.SetInputLen(0);  //设置当前接收区数据长度为0
m_ctrlComm.GetInput();//先预读缓冲区以清除残留数据然后在OnComm事件处理函数中添加如下代码:
switch(m_ctrlComm.GetCommEvent())     //事件值为2表示接收缓冲区内有字符
{
case 2:
//接收数据 break;
case 8002:
MessageBox("没有这个串口!");
break;
case 8013:
MessageBox("该串口已经打开了!");
break;
}
我的问题是,VC在串口号不合法或者串口已经打开的情况下没有出现我设定的MessageBox,而出现的好像是VC自己的MessageBox,例如打开不存在的串口时,并不会按照上面弹出"没有这个串口"提示,而是弹出"Invalid Port Number!",这是为什么?我在调试之后发现,程序在初始化m_ctrlComm.SetCommPort(PortNumber)的时候已经调出了VC自己的提示,我应该怎么办才能够使用我的错误提示呢?