、 控件; 2、 为 MSComm 控件添加 ID 的控制变量(及其他对象) 的控制变量(及其他对象) 、 ; 3、 对串口进行初始化,设置 MSComm 控件的属性; 控件的属性; 、 对串口进行初始化, OnComm(),根据应用需要,编写数据处理代码。 添加串口事件的消息处理函数 OnComm(),根据应用需要,编写数据处理代码。 4、 编写串口发送等其他代码。 、 编写串口发送等其他代码。 5、 关闭串口。 、 关闭串口。 第三章 MSComm 控件几个重要的属性 控件几个重要的属性 CommPort:设置并返回通信端口号 : Settings:以字符串的形式设置并返回波特率、奇偶校检、数据位、停止位。 :以字符串的形式设置并返回波特率、奇偶校检、数据位、停止位。 PortOpen:设置并返回
通信端口的状态,也可以打开和关闭端口。 :设置并返回通信端口的状态,也可以打开和关闭端口。 Input:从接收缓冲区读出字符。 :从接收缓冲区读出字符。 Output:向传输缓冲区写入字符。 :向传输缓冲区写入字符。
在单
文档 SDI 中应用 MSComm 控件
1、 建立工程并插入 MSComm 控件(同对话框操作步骤一样) 、 控件(同对话框操作步骤一样) 2、 在 ABOUT 对话框中拖入 MSComm 控件 对话框中拖入 、
控件 ID 号保持缺省值 IDC_MSCOMM1. 3、 添加串口事件消息处理函数 OnComm 、 在对话框中没这一过程通过 实现完成。但在这里必须手动完成。 在对话框中没这一过程通过 ClassWizard 实现完成。但在这里必须手动完成。 a. 对 SDIComm View.h 的处理,在 SDIComm View.h 的头文件中进行如下操作: 的处理, 的头文件中进行如下操作: . 控件的头文件: 首先添加 MSComm 控件的头文件:#include“mscomm.h” “ ” 加入后的结果为: 加入后的结果为:
对象定义: 再加入 CMSCOMM 类 PUBLIC 对象定义: CMSComm m_MSComm; ;
加入后的结果为: 加入后的结果为:
接着在//{{AFX_MSG(CSDICommView) 和 /
/}}AFX_MSG 之间调价如下两行: 之间调价如下两行: 接着在 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnComm(); //事件处理函数 事件处理函数 加入后的结果为: 加入后的结果为:
b.对 SDICommView.cpp 的处理,添加一些代码 对 的处理, /////////////以下为手工添加的代码 以下为手工添加的代码/////////////////////////////////////////////// 以下为手工添加的代码 BEGIN_EVENTSINK_MAP(CSDICommView, CView) //{{AFX_EVENTSINK_MAP(CAboutDlg) ON_EVENT(CSDICommView, IDC_MSCOMM1, 1, OnComm, VTS_NONE) //}}AFX_EVENTSINK_MAP END_EVENTSINK_MAP()
void CSDICommView::OnComm() { // TODO: Add your control notification handler code here } /////////////手工添加的代码结束 手工添加的代码结束//////////////////////////////////////////////////// 手工添加的代码结束 4、 创建控件并初始化串口 、 函数, 利用 ClassWizard 为 CSDIComm View 类添加 WM_CREATE 函数,该函数在视窗初始化 石被调用。 石被调用。 方法: 方法:在 ClassWizard 中选择 Message Map 卡,在 Object IDs 中选择 CSDIComm View, , :OnCreate()函数,如下 ()函数 在 Message 中选择 WM_CREATE,双击添加 CSDICommView: 双击添加 : : ()函数, 图:
并在该函数中添加如下代码: 并在该函数中添加如下代码: int CSDICommView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; // TODO: Add your specialized creation code here m_MSComm.Create(NULL,0,CRect(0,0,0,0),this,IDC_MSCOMM1);//创建控件 , 其功 创建控件, 创建控件 自动完成。 能是初始化串口类对象 m_MSComm,这在基于对话框中的
程序有 ClassWizard 自动完成。 这在基于对话框中的程序有 if(m_MSComm.GetPortOpen()) //如果串口是打开的,则行关