?? vcthread.h
字號:
///////////////////////////////////////////////////////////////
// 文件: vcthread.h
// 功能: 讀寫線程頭文件
// 作者: 王念峰
// 日期: 1999.05.15 - 修改,整理
// E_mai:wnf@wisepeak.com
// Http://www.wisepeak.com
///////////////////////////////////////////////////////////////
// 版本: 1.0
///////////////////////////////////////////////////////////////
// 注:由于涉及串口通訊,要求系統(tǒng)必須同時響應(yīng)串口事件和用戶輸入,
// 所以該處使用多線程來實現(xiàn)
///////////////////////////////////////////////////////////////
#include "ApexCommCtl.h"
//定義讀寫線程類
class TReadThread : public CWinThread //讀線程
{
DECLARE_DYNAMIC(TReadThread)
public:
TReadThread();
virtual BOOL InitInstance();
public:
HWND m_handlemsg;
HANDLE m_hCommFile;//讀設(shè)備句柄
HANDLE m_hCloseEvent;//關(guān)閉消息句柄
//讀線程類提供的方法
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;//讀設(shè)備句柄
HANDLE m_hCloseEvent;//關(guān)閉消息句柄
bool m_pbSendDataEmpty;
void PostHangupCall();
};
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -