[转载]如何添加CSerialPort类以及相应的消息函数
Step1:
将类文件SerialPort.cpp和SerialPort.h复制到工程所在的文件夹中,然后点击VC菜单上的Project->Add to Project->Files,再在打开的对话框里选择上面的两个文件,单击OK,就把类文件加入了当前工程,在Dlg.h中添加SerialPort.h说明:#include"SerialPort.h",完成这个类的加入。
Step2:
在Dlg.h中定义CSerialPort类对象,这里定义的类对象为m_SerialPort,在定义一个布尔型的变量 m_bSerialPortOpened用来标志串口是否打开。在CSerialPort类中有多个串口事件可以响应,在一般的串口编程中,只需要处理 WM_COMM_RXCHAR消息就可以了,该类的所有消息均需要人工添加消息处理函数。将处理函数名定义为OnComm(),首先在Dlg.h中添加字 符接收消息WM_COMM_RXCHAR(串口接收缓冲区内有一个字符)的响应函数声明:
1 // Generated message map functions 2 3 //{{AFX_MSG(CV2Dlg) 4 5 afx_msg LONG OnComm(WPARAM ch,LPARAM port); 6 7 //}}AFX_MSG
在Dlg.cpp文件中进行WM_COMM_RXCHAR消息映射:
1 BEGIN_MESSAGE_MAP(CV2Dlg, CDialog) 2 //{{AFX_MSG_MAP(CV2Dlg) 3 ON_MESSAGE(WM_COMM_RXCHAR,OnComm) 4 //}}AFX_MSG_MAP
在Dlg.cpp文件中加入函数OnComm()的实现,并在其中完成对接收到字符的处理。
1 LONG CV2Dlg::OnComm(WPARAM ch,LPARAM port) 2 { 3 …… 4 return 0; 5 }
好了,这样就完成了这个类的添加了。个人感觉这个类还是不错的,至少比VC上带的控件要好很多,很容易掌握的。