C++ 中在进程中的窗口句柄传入线程

来源:互联网 发布:剑网三萝莉脸型数据图 编辑:程序博客网 时间:2024/05/11 10:01

首先上传自己编写的进程类,利用这个类可以很方便的将窗口句柄传输到进程中

class CThread{public:CThread(void);~CThread(void);public:void Start();void Stop();void Run();public:virtual void SetThreadData(DWORD dwParam);virtual DWORD GetThreadData();public:static DWORD ThreadProc(LPVOID pParam);public:HANDLE m_hThread;bool m_bExit;DWORD m_dwParam;};

void Start();void Stop();void Run();
这三个函数已经很明显,分别是进程的开始,结束,和运行,下面是这三个函数的是实现。

void CThread::Stop(void){if(m_hThread){m_bExit = TRUE;::WaitForSingleObject(m_hThread,INFINITE);::CloseHandle(m_hThread);m_hThread = NULL;}}void CThread::Start(void){DWORD dwThreadID;HANDLE hThread = ::CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadProc,this,0,&dwThreadID);ASSERT(hThread);m_hThread = hThread;}
至于run函数,则是程序具体需要完成的任务,是需要自己Diy的,但是基本上上面这几个是固定的

 void CThread::SetThreadData(DWORD dwParam) {if(m_dwParam != dwParam){m_dwParam = dwParam;} }DWORD CThread::GetThreadData(){return m_dwParam;}

下面这个是进程开始函数,这基本属于固定方式,是要这样写的

DWORD CThread::ThreadProc(LPVOID pParam){CThread * pThis = (CThread*)  pParam;ASSERT(pThis);while(!pThis->m_bExit){pThis->Run();}return 1;}







0 0