《VC语言6.0程序设计从入门到精通》第121章


图 11…18 对话框界面
为对话框添加完控件后,需要设置各控件 ID,并为其添加变量。各控件的 ID 及其对应 
的变量如表 11…14 所示。
·324 ·
…………………………………………………………Page 336……………………………………………………………
第 11 章 网络编程
表 11…14 各控件 ID 及对应变量
控件 ID 变量
MSm 控件 IDC_MSM CMSm m_m
接收数据 Edit IDC_RECEIVEDATA CString m_Receive
发送数据 Edit IDC_SENDDATA CString m_Send
选择串口下拉列表 IDC_BOLIST int m_Port (初始化为0 )
打开串口按钮 IDC_OPENPORT 无
关闭串口按钮 IDC_CLOSTPORT 无
发送按钮 IDC_SEND 无
在文件“MSmDlg。h ”的头部加入语句#include 〃msm1。h〃 ,然后为对话框类加入 
成员函数 void Initm() ,来初始化 MSm 控件,其代码如下:
void CMSmDlg::Initm()

//设置串口
m_m。SetmPort(m_Port+1);
// 设置数据读取格式为二进制方式
m_m。SetInputMode(1);
// 设置传输参数
m_m。SetSettings(〃9600;n;8;1〃);
//缓冲区内有一个字符就可以接收
m_m。SetRThreshold(1);
// 指定接收缓冲区大小
m_m。SetInBufferSize(1024);
//指定发送缓冲区大小
m_m。SetOutBufferSize(1024);
// 清空接收缓冲区
m_m。SetInBufferCount(0);
// 打开串口
if(!m_m。GetPortOpen())

m_m。SetPortOpen(TRUE);


当选择下拉列表中的端口时,会激发 CBN_SELCHANGE 消息,为其添加响应函数,代 
码如下:
void CMSmDlg::OnSelchangebolist()

// TODO: Add your control notification handler code here
CString m_str;
//得到下拉列表内容
GetDlgItemText(IDC_BOLIST; m_str);
·325 ·
…………………………………………………………Page 337……………………………………………………………
Visual C++ 6。0 程序设计从入门到精通
//得到串口号
m_Port = atoi(LPCTSTR(m_str))…1;

为“打开串口”按钮添加响应函数,代码如下:
void CMSmDlg::OnOpenport()

// TODO: Add your control notification handler code here
Initm();

为“关闭串口”按钮添加响应函数,代码如下:
void CMSmDlg::OnClostport()

// TODO: Add your control notification handler code here
if( m_m。GetPortOpen() )

// 关闭串口
m_m。SetPortOpen(0);


为“发送”按钮添加响应函数,代码如下:
void CMSmDlg::OnSend()

// TODO: Add your control notification handler code here
//得到发送 Edit 控件的数据
UpdateData(TRUE);
int Count=m_Send。GetLength();
//将发送数据传给 m_Array
CByteArray m_Array;
m_Array。RemoveAll();
m_Array。SetSize(Count);
for(int i=0;i 0)

//得到接收数据
m_input = m_m。GetInput();
str = (char*)(unsigned char*)m_input。parray…》pvData;

//清除字符串中的不必要字符
i = 0;
str1 = str;
while(i 《 k)

i++;
str1++;

*str1 =’0’;
str2 = (const char*)str;
//得到最终数据
m_Receive += (LPCTSTR)str2;
default:
break;

// 显示数据
UpdateData(FALSE);

至此,程序设计完成。运行两个程序,分别选择串口 1 和串口 2 ,然后收发数据,如图 
小说推荐
返回首页返回目录