a.hWnd = this->GetSafeHwnd();
枫叶文学网www.fywxw.com
第9 章 多线程
·249·
senddata.length = m_SendData.GetLength();
strcpy(senddata.data, (LPCTSTR)m_SendData);
senddata.pComm = &m_Comm;
// 创建发送线程
CreateThread(NULL, 0, CommSendProc, &senddata, 0, &id);
}
(7)关闭串口
响应“关闭串口”按钮的单击事件,用来关闭串口,代码如下:
void CSCommDlg::OnCloseCom()
{
// TODO: Add your control notification handler code here
if( m_Comm.GetPortOpen() )
{
// 关闭串口
m_Comm.SetPortOpen(0);
}
}
(8)打开串口
响应“打开串口”按钮的单击事件,用来打开串口,代码如下:
void CSCommDlg::OnOpenCom()
{
// TODO: Add your control notification handler code here
if( !m_Comm.GetPortOpen() )
{
// 打开串口
m_Comm.SetPortOpen(1);
}
}
(9)退出
响应“退出”按钮的单击事件,用来释放资源,退出程序,代码如下:
void CSCommDlg::OnCancel()
{
// TODO: Add extra cleanup here
// 释放互斥量资源
ReleaseMutex(g_hMutex);
// 关闭句柄
CloseHandle(g_hMutex);
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·250·
CDialog::OnCancel();
}
(10)运行结果
运行程序后,首先弹出“选择串口参数”对话框,选择需要的串口,如图9-8 所示。
图9-8 “设置串口参数”对话框
在程序主界面中,单击“发送”按钮,发送输入框中的内容会出现在另一个程序的接收
框中,如图9-9 和图9-10 所示。
为了更加简便,本节仅给出利用多线程串口发送数据的方法,读者若有兴趣可以自行实
现多线程控制多个串口的功能。
图9-9 发送窗口 图9-10 接收窗口
9.4 本章小结
本章主要介绍Windows cāo作系统下多线程的基本概念,如何创建和管理线程,以及线程