Initial
This commit is contained in:
57
thtest/THLNCH.CPP
Normal file
57
thtest/THLNCH.CPP
Normal file
@@ -0,0 +1,57 @@
|
||||
#include <stdio.h>
|
||||
#include <thtest/thlnch.hpp>
|
||||
|
||||
template <class T>
|
||||
ThreadLaunch<T>::ThreadLaunch(void)
|
||||
: mThreadHandler(this,&ThreadLaunch::threadHandler), mhDisplay(0)
|
||||
{
|
||||
insertHandler(&mThreadHandler);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
ThreadLaunch<T>::~ThreadLaunch()
|
||||
{
|
||||
stop();
|
||||
destroyWindow();
|
||||
removeHandler(&mThreadHandler);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
DWORD ThreadLaunch<T>::threadHandler(ThreadMessage &someThreadMessage)
|
||||
{
|
||||
switch(someThreadMessage.message())
|
||||
{
|
||||
case ThreadMessage::TM_CREATE :
|
||||
break;
|
||||
case ThreadMessage::TM_DESTROY :
|
||||
break;
|
||||
case ThreadMessage::TM_USER :
|
||||
if(someThreadMessage.userDataOne()==ThreadStart)cycle();
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void ThreadLaunch<T>::cycle(void)
|
||||
{
|
||||
ThreadMessage threadMessage(ThreadMessage::TM_USER,ThreadStart,0L);
|
||||
if(!mhDisplay)return;
|
||||
postMessage(threadMessage);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void ThreadLaunch<T>::createWindow(HINSTANCE hInstance,const Point &windowPoint)
|
||||
{
|
||||
if(mhDisplay)return;
|
||||
mhDisplay=::CreateWindow("BUTTON","",WS_POPUP|WS_CAPTION,windowPoint.x(),windowPoint.y(),50,50,0,(HMENU)0,hInstance,0);
|
||||
::ShowWindow(mhDisplay,SW_SHOW);
|
||||
::UpdateWindow(mhDisplay);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void ThreadLaunch<T>::destroyWindow(void)
|
||||
{
|
||||
if(mhDisplay){::DestroyWindow(mhDisplay);mhDisplay=0;}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user