//========================================================================
//TITLE:
// 闲谈WinCE的手写辨认技能(一)
//AUTHOR:
// norains
//DATE:
// Wednesday 24-January -2007
//Environment:
// EVC4.0 + Standard SDK
//========================================================================
WinCE从4.0开端,集成了手写辨认输入法,能够辨认繁体中文,日文和韩文.因而假如在WinCE下选用相应的API函数重写上述三种言语的手写辨认输入好像显得多此一举.但剩余并不代表没有了解的价值,今日,就让咱们抽丝剥茧来探求WinCE下的手写辨认吧!
大体上来说,调用WinCE自带的辨认引擎进行文字辨认需求通过如下十个过程:
1.调用HwxConfig ()函数初始化辨认引擎.在每个使用程序中,该初始化只需求调用一次.
2.调用HwxCreate()创立辨认引擎句柄.
函数原型为:HRC HwxCreate(HRC hrc).该函数有个形参hrc,保存的是已存在的辨认引擎句柄.假如传入该形参,则能够依据已存在的引擎的设置来创立新的辨认引擎.当然通常情况下咱们仅仅是创立一个新的引擎,所以该函数更多情况下是不运用形参:
3.调用HwxSetGuide()函数来设置辨认框的规模.
设置该辨认框规模的重要性显而易见,由于假如设置不恰当,则直接导致辨认犯错乃至无法辨认.
该函数传入的形参是一个HWXGUIDE结构,该结构包含了辨认框的全部信息:
typedef struct tagHWXGUIDE {
UINT cHorzBox;
UINT cVertBox;
INT xOrigin;
INT yOrigin;
UINT cxBox;
UINT cyBox;
UINT cxOffset;
UINT cyOffset;
UINT cxWriting;
UINT cyWriting;
UINT cyMid;
UINT cyBase;
UINT nDir;
} HWXGUIDE, *PHWXGUIDE;
假如用文字来描绘各个形参的意义,我真实没这个才能让言语读起来不觉得庸俗,所以最简略最直接最直观的办法,我仍是用图片来标识出各个参数的意义,至少应该不会让脑袋觉得发晕:
xOriginy,Origin别离界说了辨认框的开始坐标,而cxBox,cyBox则别离界说了辨认框的长度和宽度.需求留意的是,这四个参数是以屏幕坐标为基准,假如咱们取得的是使用程序窗口的坐标,在赋值之前,咱们需求调用MapWindowPoints()进行转化.当然,相同的道理也相同运用于该结构的其它形参.
nDir界说了书写的次序,咱们一般运用HWX_HORIZONTAL,标明书写方法是水平书写.当然,假如有特殊要求,咱们还能够设置HWX_BIDIRECTIONAL或HWX_VERT%&&&&&%AL.
4.调用HwxALCValid()和HwxALCPriority()界说辨认的规范.
HwxALCValid()用来界说辨认字符的规模,HwxALCPriority()则是界说回来字符的优先级.
依据协助文档,能够辨认的字符文字为:简体中文,繁体中文,日文,韩文和英文.但在实际运用中,却是无法正确辨认简体中文,这不能不说是一个惋惜.在平常使用中,咱们一般只需辨认一种文字,此刻咱们能够仅仅简略地设置HwxALCValid()即可: