📄 vcthread.h
字号:
///////////////////////////////////////////////////////////////
// 文件: vcthread.h
// 功能: 读写线程头文件
// 作者: 王念峰
// 日期: 1999.05.15 - 修改,整理
// E_mai:wnf@wisepeak.com
// Http://www.wisepeak.com
///////////////////////////////////////////////////////////////
// 版本: 1.0
///////////////////////////////////////////////////////////////
// 注:由于涉及串口通讯,要求系统必须同时响应串口事件和用户输入,
// 所以该处使用多线程来实现
///////////////////////////////////////////////////////////////
#include "ApexCommCtl.h"
//定义读写线程类
class TReadThread : public CWinThread //读线程
{
DECLARE_DYNAMIC(TReadThread)
public:
TReadThread();
virtual BOOL InitInstance();
public:
HWND m_handlemsg;
HANDLE m_hCommFile;//读设备句柄
HANDLE m_hCloseEvent;//关闭消息句柄
//读线程类提供的方法
bool SetupCommEvent( OVERLAPPED* lpOverlappedCommEvent,DWORD & lpfdwEvtMask);
bool SetupReadEvent( OVERLAPPED* lpOverlappedRead,LPSTR lpszInputBuffer,DWORD dwSizeofBuffer,DWORD & lpnNumberOfBytesRead);
bool HandleCommEvent(OVERLAPPED* POverlapped,DWORD & lpfdwEvtMask, bool fRetrieveEvent);
bool HandleReadEvent( OVERLAPPED* lpOverlappedRead,LPSTR lpszInputBuffer, DWORD dwSizeofBuffer,DWORD & lpnNumberOfBytesRead);
bool HandleReadData(LPCSTR lpszInputBuffer,DWORD dwSizeofBuffer);
bool ReceiveData(LPSTR lpNewString,DWORD dwSizeofNewString);
bool ReceiveError(DWORD EvtMask);
void PostHangupCall();
};
//写线程
class TWriteThread: public CWinThread
{
DECLARE_DYNAMIC(TWriteThread)
public:
TWriteThread();
virtual BOOL InitInstance();
protected:
bool HandleWriteData(OVERLAPPED* lpOverlappedWrite,LPSTR pDataToWrite, DWORD dwNumberOfBytesToWrite);
public:
HWND m_handlemsg;
HANDLE m_hCommFile;//读设备句柄
HANDLE m_hCloseEvent;//关闭消息句柄
bool m_pbSendDataEmpty;
void PostHangupCall();
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -