描述:
请问关于在SDI的框价下嵌入串口通讯控件的问题
我在aboutdlg 中加入ActiveX的串口控件MSCOMM,然后在cview中用加入oncreat,并在其中进行串口初始化程序如下(我也是按照论坛上的一个帖子做的,那个帖子是在mdi的框价下进行的)
编译可以通过,但是运行的时候出现assert failed错误的信息
我想应该是oncreat这里出了问题,好象用的不对
我不知道LPCREATESTRUCT lpCreateStruct这个指针怎么和我的串口控件连起来
有没有哪位高手作过着方面的东西,给小弟借鉴一下(不胜感激)
int CAaView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
// if (CScrollView::OnCreate(lpCreateStruct) == -1)
// return -1;(这两行是网上mdi中的,我没用到)
// TODO: Add your specialized creation code here
m_MSComm.Create(NULL,0,CRect(0,0,0,0),this,IDC_MSCOMM1);
if(m_MSComm.GetPortOpen()) //如果串口是打开的,则行关闭串口
m_MSComm.SetPortOpen(FALSE);
m_MSComm.SetCommPort(1); //选择COM2
m_MSComm.SetInBufferSize(1024); //接收缓冲区
m_MSComm.SetOutBufferSize(1024);//发送缓冲区
m_MSComm.SetInputLen(0);//设置当前接收区数据长度为0,表示全部读取
m_MSComm.SetInputMode(1);//以二进制方式读写数据
m_MSComm.SetRThreshold(1);
m_MSComm.SetSettings("9600,n,8,1");
if(!m_MSComm.GetPortOpen())//如果串口没有打开则打开
m_MSComm.SetPortOpen(TRUE);//打开串口
else
AfxMessageBox("Open Serial Port Failure!");
m_MSComm.GetInput(); //先预读缓冲区以清除残留数据
return 0;
}