MSComm控件在VS2010中应用_第1页
MSComm控件在VS2010中应用_第2页
MSComm控件在VS2010中应用_第3页
MSComm控件在VS2010中应用_第4页
MSComm控件在VS2010中应用_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MSComm 控件在控件在 VS2010 中应用分为控件注册与新建基于对话框中应用分为控件注册与新建基于对话框 MFC 项目项目 1 MSComm 控件注册 解压 MSComm32 zip 压缩包 附在插入对象里 把解压后文件复 制 C Windows System32 运行命令下输入 Regsvr32 C Windows System32 MSCOMM32 OCX 进行注册 注册成功后会显示一下提示 2 新建基于对话框 MFC 项目 第一步 在工具箱的下图这个位置右键 选择 choose item 第二步 在弹出的组件栏里选择 COM Components 下的 Microsoft communication control 6 0 然后工具箱里就会有 一个电话图标了 第三步 添加控件 也就是把电话图标拖到对话框里 并添加控件变量 添加空间以后 在控件上面右键 然后选择 add variable 这个时候请特别注意 下图两个红框里面的文件会被自动 添加到工程 并且文件名都带 1 如果你的工程里没有自动添加 或者文件名后面不带 1 那么出错的可能性就很大了 网上有种帖子说 用右键工程 添加 MFC 类 添加 ActiveX 的 MFC 类 添加 mscomm 类定义 这样添加出来的文 件个人实验下来是不带 1 的 我也不知道为什么 这两种方法大概都可以 有空的话你可比较一下带 1 和不带 1 的两 个 cpp 文件和 h 文件的区别 第四步 添加消息响应函数 在控件上右键 添加事件 handle 添加响应函数 这样添加以后 cpp 文件里会自动多出来以下代码 1 BEGIN EVENTSINK MAP CMscommTest3Dlg CDialogEx 2 ON EVENT CMscommTest3Dlg IDC MSCOMM1 1 CMscommTest3Dlg OnCommMscomm1 VTS NONE 3 END EVENTSINK MAP 4 5 6 void CMscommTest3Dlg OnCommMscomm1 7 8 TODO Add your message handler code here 9 特别注意 不要在控件上面右键用类向导添加消息响应函数 这样添加的消息响应函数是无法被触发的 估计是软件特别注意 不要在控件上面右键用类向导添加消息响应函数 这样添加的消息响应函数是无法被触发的 估计是软件 BUG 所以最好是在选定了相应的控件后点击项目栏下添加相应变量与类向导 所以最好是在选定了相应的控件后点击项目栏下添加相应变量与类向导 下面附上 2 的详细步骤 以对话框程序为例 下面试着在 vs2010 下使用该控件 控件在使用之前必须要注册 第一步 创建对话框程序 画好编辑框等控件 第二步 插入 MSCOMM 控件 添加控件相关的类 并为控件添加好变量 第三步 添加消息处理函数 这里要注意的是 MSCOMM 控件的响应函数要右击控件选择添加 事件处理函数 消息类型选择为 OnComm 类型 下面是各个函数的实现 1 发送按钮按下响应函数 2 void CCommTeatDlg OnBnClickedButton3 3 4 UpdateData TRUE 5 m mscomm put Output COleVariant m EditSend 向串口下发数据 6 m EditSend Empty 将编辑框内容清空 7 UpdateData FALSE 8 1 void CCommTeatDlg OnBnClickedButton2 2 3 m mscomm put PortOpen FALSE 关闭串口 4 AfxMessageBox T 串口已关闭 显示提示窗口 5 1 void CCommTeatDlg OnBnClickedButton1 2 3 if m mscomm get PortOpen 检测串口是否已经打开 4 5 m mscomm put PortOpen FALSE 若串口已经打开 则关闭串口 6 7 m mscomm put CommPort 1 打开串口 1 8 m mscomm put InBufferSize 1024 串口接收缓冲区大小 9 m mscomm put OutBufferSize 1024 串口发送缓冲去大小 10 m mscomm put InputLen 0 数据发送长度 11 m mscomm put InputMode 1 数据发送模式 12 m mscomm put RThreshold 1 13 m mscomm put Settings T 4800 n 8 1 串口设置 14 if m mscomm get PortOpen 检测串口是否打开 若关闭则打开串口 15 16 m mscomm put PortOpen TRUE 17 AfxMessageBox T 打开串口成功 18 19 else 20 21 m mscomm put OutBufferCount 0 清空输出缓冲区 22 AfxMessageBox T 打开串口失败 提示串口打开失败 23 24 特别注意一下这段 1 BEGIN EVENTSINK MAP CCommTeatDlg CDialogEx 2 ON EVENT CCommTeatDlg IDC MSCOMM1 1 CCommTeatDlg OnCommMscomm1 VTS NONE 3 END EVENTSINK MAP 1 void CCommTeatDlg OnCommMscomm1 2 3 static unsigned int cnt 0 4 VARIANT variant inp 5 COleSafeArray safearryay inp 6 long len k 7 unsigned int data 1024 0 8 byte rxdata 1024 9 CString stremp 10 if m mscomm get CommEvent 2 11 12 cnt 13 variant inp m mscomm get Input 14 safearryay inp variant inp 15 len safearryay inp GetOneDimSize 16 for k 0 k len k 17 18 safearryay inp GetElement 19 20 for

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论