关于Wince拼音输入法的怪问题(要求置顶!)
[复制链接]
关于Wince拼音输入法的怪问题(要求置顶!)
这个拼音输入法问题,我在网上找了很久很久,发现好多网友都遇到了相同的问题,可是每个贴子问题都没解决就不了了之,只有一个提问的朋友解决了,解决完之后还没影了,也没有具体说明解决问题的办法。真的,光咱们的eeworld就有四个贴子是关于这个怪问题的,大家都在那儿憋着干挺着,那憋的是相当的难受,当然其中也包括我。实在受不了了,我不得不发这个贴动援大家一起把这个问题解决!
相关贴子如下:
http://topic.eeworld.net/u/20090723/18/19dacf1f-e206-43c1-b276-69bcd1c5158e.html?seed=1998120047&r=60003579#r_60003579
http://topic.eeworld.net/u/20090422/14/E6E58645-C3C0-4E65-8806-75CE405287E4.html
http://topic.eeworld.net/u/20080523/13/26aae214-ce3f-45fa-a717-44c7ec9242d6.html?seed=953286583&r=60292966#r_60292966
http://topic.eeworld.net/u/20091012/10/C9A1D57C-75E3-4FF4-8458-E9F6DC104D2B.html
我添加的组件:
Agfa AC3 Font Compression
SimSun & NSimSun (Subset 2_50)
GB18030 Data Converter
1.1 MB - Minimal Database
MSPY2 for Windows CE
Pocket IME
Double Spelling (Shuang Pin)
SIP for Small Screens
Software-based Input Panel Driver
下面,是我对这个问题描述,如下:
问题(1)
定制WINCE 4.2系统时,添加了所有该添加的组件,系统运行后,系统运行后使用Pocket IME输入面板,无法完成拼音输入功能,输入面板中只显示声母,点某一声母,无法像正常的那样自动弹出联想到的可组合的韵母。当然点面板上的“韵”也切换不到韵母软键盘,但英文数字符号可以正常输入,不知是怎么回事。 有人说是BSP关闭了个编译开关(环境变量)造成的。也不知道是不是。到底怎么回事儿!我和开发板的技术支持联系,他们也没声了。
我想是不是有关语言还有输入法的组件是不是有冲突,然后试着添加各种组合也不行。我想是不是PB没装好的关系,结果重装了也不行。我又想是不是我偶尔修改BSP里的小东西造成的,然后用回开发板原始的BSP,也还是不行。
问题总结:什么点声母时不出韵母???!!!
问题(2)
实在没有办法了,这破Pocket IME我不用了还不行吗,我就只能用微软的那个的拼音输入法,无所谓什么Pocket IME了,我就删掉了Pocket IME和Double Spelling (Shuang Pin)两个组件。系统运行,打开WordPad,屏幕左下角自动弹出拼音输入法的状态条,打开软键盘,然后在WordPad里输入拼音,是可以用的。虽然这输入法,只能一个字一个字的打,也没有联想的功能,可以说是鸡肋一样,但是我也我非常高兴。起码能打字儿了,以为这样就可以用了。
可是当我进入我自己的应用程序中时,打开软键盘,想在相应的编辑框输入汉字时,却不能输入拼音,只能输入数字和英文,左下角也没有输入法状态条(那就是那个中英,全角半角,标点符号切换的那个东西),所以我在软件盘上点CTRL+SPACE,可是什么反应都没有。但是我用外接的键盘按CTRL+SPACEl输入法状态条就可以弹出来,然后就可以正常输入拼音了。可是,我不能想去用拼音输入时总要去接个键盘按一下CTRL+空格才可以用吧,这样出来的产品也是有缺陷的啊!
问题总结:为什么点软件盘的CTRL+SPACE就不能弹出输入法状态条,外接键盘就不行。是微软的SIP软件盘的问题吧,可是又不公开源码,让咱们怎么去改善这个功能啊???!!!
问题(3)
实在没办法了,我想,我不去按CTRL+SPACE来调你这输入法状态条还不行吗我!!我在应用软件里,自动调出这个输入法状态条还不行吗!(我对应用软件编程不懂,我只是去试图解决这个问题,具体什么又句柄,又窗口啥,概念我不是很懂)于是我在打开软件盘的那个窗口按钮的程序段,添加了下面的代码:
HIMC hIMC = ImmGetContext(hWnd); ///hWnd为当前窗口句柄
POINT pt;
pt.x = 5;
pt.y = 25;
ImmSetStatusWindowPos(hIMC, &pt); ///设置状态窗口位置
ImmSetOpenStatus(hIMC, TRUE); ///打开中文输入法
ImmReleaseContext(hWnd, hIMC); ///最后释放上下文
程序运行,点软件盘窗口按钮时,确确实实弹出来了输入法状态栏,我非常开心,以为可以了,可是当我点具体的编辑输入框准备输入拼音时,那个输入法状态栏又不见了,原因我觉得就是,这两个窗口“抢”焦点的问题。输入法状态栏也不在编辑输入框这个窗口焦上。整个应用程序的编辑输入窗口那么多,我也不能在每个窗口上都加上这段代码吧?
问题总结:如果要在软件上下功夫解决这拼音输入的问题,要怎么办???!!!
-------------------------------------------------------------------------------------------------------------
这个问题折磨了我很久了,我个月所有的任务不到十天就全解决了,就是这个破输入法,用了大部分的时间还没解决。遇到这个问题的人很多,没有人解决,有人解决也是一溜烟就走人没动静了。哎。。。所以,在这我把这问题细细的说一遍,希望引起大的注意,可以一起把这问题解决了,以后再有人遇到这个问题就不会像咱们这么痛苦的憋来憋去了。另外,大家互相讨论,也是我们大家提高的一个过程。
头一次这以认真的发贴问问题,希望大家支持。