综述:之前没有进行过MFC的使用,今天就来进行一个简单的MFC入门:串口通信。相信大家都用过串口调试工具,今天我们就来自己写一写。
一、建立MFC程序
建立一个MFC应用程序
选择基于对话框,其他默认。
二、界面设置
界面设置如下:
在这里我用了2个Group Box当框架,修改caption就可以直接改显示的标题,然后在这2个Group Box里面添加了Edit Control,vertical Scroll 设置滚动框。2个下拉框Combo Box,上面可以加一个Static Text进行说明,后面还有4个Button最后就是最重要的一个控件MSComm控件。可以右键插入ActiveX控件。
三、MSComm控件
这个控件Microsoft Communications Control,version 6.0(SP6),如果没有的话就手动安装。
http://xiazai.zol.com.cn/detail/47/468794.shtml
https://www.ocxme.com/files/mscomm32_ocx
mscomm32.ocx在这个网站上能够下载。下完解压后就是MSCOMM32.OCX,把它放在C:\Windows\system32目录。这个文件下就有cmd.exe,直接右键管理员权限打开cmd窗口,输入指令regsvr32 MSCOMM32.OCX即可,然后会弹出注册成功。
网上有些教程还有一步是修改注册表,不过我发现regsvr32命令已经修改了注册表,无需手动修改。
四、参数以及代码设计
首先肯定是添加变量的,可以直接点Edit Control,然后右键添加变量,当然也可以直接写。
CString e_editReceive;
CString e_editSend;
CComboBox e_combo1;
CComboBox e_combo2;
CMscomm1 e_mscomm1;
我是这样定义的。然后就是实现我需要的这4个功能:打开串口,发送数据,清除数据,退出。双击button跳转之后就可以直接写代码。
打开串口代码如下:
void CsortDlg::OnBnClickedButtonOpen() //打开串口
{
// TODO: 在此添加控件通知处理程序代码
CString str,str1,n;
GetDlgItemText(IDC_BUTTON_Open,str);
CWnd *h1;
h1 = GetDlgItem(IDC_BUTTON_Open); //指向控件的caption
if(!e_mscomm1.get_PortOpen())
{
e_combo2.GetLBText(e_combo1.GetCurSel(),str1); //取得所选