漫談WinCE的手寫識別技術(shù)(二)
#define DEFAULT_HWXGUIDE_CVERTBOX 1
#define DEFAULT_HWXGUIDE_CXOFFSET 1
#define DEFAULT_HWXGUIDE_CYOFFSET 1
//The default value of ALC
#define DEFAULT_ALC ALC_KANJI_ALL
//--------------------------------------------------------------------
// Construction/Destruction
CRecognizer::CRecognizer()
{
m_alc = NULL;
m_hrc = NULL;
m_hWndRecog = NULL;
memset(m_hwxGuide,0,sizeof(m_hwxGuide));
}
CRecognizer::~CRecognizer()
{
}
//-----------------------------------------------------------------------
//Descriptiong:
// Initialize the recognizer
//
//Parameter:
// hWnd: [in] The handle of window to be recognized
// rcWnd: [in] The window area to be recognized
// scale: [in] The scale base of prcWnd point
//-----------------------------------------------------------------------
BOOL CRecognizer::Initialize(HWND hWnd,const RECT *prcWnd,ScaleType scale)
{
m_hWndRecog = hWnd;
m_alc = DEFAULT_ALC;
RECT rcWnd = {0};
switch(scale)
{
case SCALE_APPWND:
{
rcWnd = *prcWnd;
rcWnd.left *= 4;
rcWnd.right *= 4;
rcWnd.top *= 4;
rcWnd.bottom *= 4;
MapWindowPoints(hWnd,HWND_DESKTOP,(LPPOINT)(rcWnd),(sizeof(RECT)/sizeof(POINT)));
break;
}
case SCALE_SCREEN:
{
rcWnd = *prcWnd;
break;
}
}
m_hwxGuide.cHorzBox = DEFAULT_HWXGUIDE_CHORZBOX;
m_hwxGuide.cVertBox = DEFAULT_HWXGUIDE_CVERTBOX;
m_hwxGuide.xOrigin = rcWnd.left;
m_hwxGuide.yOrigin = rcWnd.top;
m_hwxGuide.cxBox = rcWnd.right - rcWnd.left;
m_hwxGuide.cyBox = rcWnd.bottom - rcWnd.top;
m_hwxGuide.cxOffset = DEFAULT_HWXGUIDE_CXOFFSET;
m_hwxGuide.cyOffset = DEFAULT_HWXGUIDE_CYOFFSET;
m_hwxGuide.cxWriting = (rcWnd.right - rcWnd.left) - m_hwxGuide.cxOffset * 2;
m_hwxGuide.cyWriting = (rcWnd.bottom - rcWnd.top) - m_hwxGuide.cyOffset * 2;
m_hwxGuide.nDir = HWX_HORIZONTAL;
#ifdef RECOGNIZE_FUNCTION_FROM_DLL
HINSTANCE hInstDll;
hInstDll = LoadLibrary(RECOGNIZE_DLL_PATH);
if(hInstDll != NULL)
{
HWXCONFIG = (DLL_HWXCONFIG) GetProcAddress(hInstDll,TEXT(HwxConfig));
HWXCREATE = (DLL_HWXCREATE) GetProcAddress(hInstDll,TEXT(HwxCreate));
HWXSETGUIDE = (DLL_HWXSETGUIDE) GetProcAddress(hInstDll,TEXT(HwxSetGuide));
HWXALCVALID = (DLL_HWXALCVALID) GetProcAddress(hInstDll,TEXT(HwxALCValid));
HWXALCPRIORITY = (DLL_HWXALCPRIORITY) GetProcAddress(hInstDll,TEXT(HwxALCPriority));
評論