step1 :在类BOOL CCommTestDlg::OnInitDialog()初始化用户代码中添加
/*begin: 动态创建串口*/
DWORD style=WS_VISIBLE | WS_CHILD;
if(!m_mscomm.Create(NULL,style,CRect(0,0,0,0),this,IDC_MSCOMM))
{
TRACE0("Failed to create OLE Communications Control\n");
return -1;
}
/*end*/
step2:在类CCommTestDlg中实例化CMSComm和事件处理函数
/*begin:初始化串口实例和事件处理函数*/
CMSComm m_mscomm; //串口实例
void OnMscomm(); //定义串口事件处理方法 moon
DECLARE_EVENTSINK_MAP()
/*end*/
setp3:在CommTest.cpp中添加事件映射和事件处理函数
BEGIN_EVENTSINK_MAP(CCommTestDlg, CDialogEx)
ON_EVENT(CCommTestDlg, IDC_MSCOMM, 1/* OnComm */, OnMscomm, VTS_NONE) //串口事件映射 moon
END_EVENTSINK_MAP()
void CCommTestDlg::OnMscomm() //串口事件处理函数 moon
{
// TODO: 在此处添加消息处理程序代码
}
串口接收和发送函数
m_mscomm.get_Input(); //读缓冲区消息
m_mscomm.put_Output();//发送数据