从零开始学VC系列教程完整版(7)

2019-06-11 21:38

b+=a; }

SetDlgItemText(IDC_EDIT_RECMSG,b); } }

这一段其实不难理解,因为前面两章已经介绍过多次了. sio_read是Pcomm的函数,从串口读取数据用. GetDlgItemText(IDC_EDIT_RECMSG,b);用于读出以前的历史记录,这样每次发上来的数据都放在后面连接起来.end是返回的收到的数据个数.用十六进制形式显示出来.

图片11 (原文件名:011.jpg)

做完了上面一些,我们差一步就可以收到数据了.因为数据发上来后,底层响应,并调用了回调函数,在回调

函数里面,发出一个消息WM_PCOMM 虽然我们在后面定义了一个Pcomm()函数专门用于响应这个消息,但这个自定义消息并不是自动连接到Pcomm()的,需要添加一个消息影射才能使WM_PCOMM消息影射到Pcomm()函数.双击左边[工作空间](WorkSpace)中的 DoDataExchange(CDataExchange* pDX)

DoDataExchange这个函数的下面一般都这是用于定义消息影射的,将下面一段程序增加一行,完成后如下. BEGIN_MESSAGE_MAP(CEg03Dlg, CDialog) //{{AFX_MSG_MAP(CEg03Dlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON()

ON_BN_CLICKED(IDC_BTN_PORTOPEN, OnBtnPortopen) //}}AFX_MSG_MAP

ON_MESSAGE(WM_PCOMM,OnPcomm) //这里是消息影射 END_MESSAGE_MAP()

图片12 (原文件名:012.jpg)

完成以后就可以按F7编译一下,如果无误就可以接收到数据了.运行后,选择正确的串口号,按一下[打开]

按钮就可以了.

现在我们再来看看怎么发送数据

回到控件编辑状态,双击[发送]按钮,为该按钮添加代码. void CEg03Dlg::OnBtnSend() {

// TODO: Add your control notification handler code here CString a;

unsigned char b=0;

GetDlgItemText(IDC_EDIT_SEDMSG,a); //取得编辑框内所有文本 a.MakeUpper();//全部转换为大写

for(unsigned char i=0;i

if(a.GetAt(i)>='A' && a.GetAt(i)<='Z') b=(a.GetAt(i)-55)*16; //判断填入的是字母还是数字,并把字符转换成十六进制数

else if(a.GetAt(i)>='0' && a.GetAt(i)<='9') b=(a.GetAt(i)-0x30)*16;

if(a.GetAt(i+1)>='A' && a.GetAt(i+1)<='Z') b+=(a.GetAt(i+1)-55);

else if(a.GetAt(i+1)>='0' && a.GetAt(i+1)<='9') b+=(a.GetAt(i+1)-0x30);

sio_putch(Port,b); //发送 } }

这一段主要是把获得的编辑框内的字串转换成十六进制的数字,转换一个发送一个.Cstring类型以前已经提起来,应该际上是一个类, MakeUpper是一个成员函数,用于将字符串全部转成大写.GetAt也是一个成员函数,可以取出字符串中任意下标的字符. sio_putch用于发送一个字符.

图片13 (原文件名:013.jpg)

填写待发送数据的时候要注意,每两位中间空格一下.填入的是十六进制数据.

下面再来总结一下静态方式调用动态库的方法. 1. 拷贝Lib,H头文件到工程路径 2. 在工程->设置中加入Lib模块. 3. 加入.h头文件,用于函数声明 4. 将Dll文件拷入到工程目标路径中 总结一下自定义消息方法:

1. 用#define WM_NAME WM_USER+1 定义一个自定义消息,名称随便.一般用WM开头.WM_USER+1中的1那个数字是自己定的,一个消息就无所谓了,喜欢多少都行,如果要定义很多个消息,不要冲突就行了

2. 在类定义里面声明一个消息响应函数,写成 afx_msg void FunctionName();格式. 3. 添加一个消息影射ON_MESSAGE(WM_NAME, FunctionName)注意这句后面是没有分号的. 4. 写好FunctionName的函数. 很简单的四步就行了.


从零开始学VC系列教程完整版(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:荣成项目前期-----荣成万隆商业广场市场调研报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: