关于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); ///最后释放上下文
程序运行,点软件盘窗口按钮时,确确实实弹出来了输入法状态栏,我非常开心,以为可以了,可是当我点具体的编辑输入框准备输入拼音时,那个输入法状态栏又不见了,原因我觉得就是,这两个窗口“抢”焦点的问题。输入法状态栏也不在编辑输入框这个窗口焦上。整个应用程序的编辑输入窗口那么多,我也不能在每个窗口上都加上这段代码吧?
问题总结:如果要在软件上下功夫解决这拼音输入的问题,要怎么办???!!!
-------------------------------------------------------------------------------------------------------------
这个问题折磨了我很久了,我个月所有的任务不到十天就全解决了,就是这个破输入法,用了大部分的时间还没解决。遇到这个问题的人很多,没有人解决,有人解决也是一溜烟就走人没动静了。哎。。。所以,在这我把这问题细细的说一遍,希望引起大的注意,可以一起把这问题解决了,以后再有人遇到这个问题就不会像咱们这么痛苦的憋来憋去了。另外,大家互相讨论,也是我们大家提高的一个过程。
头一次这以认真的发贴问问题,希望大家支持。
刚在eeworld又发现了一个相同问题的发贴,在此补上!!
http://topic.eeworld.net/u/20091013/16/7274fd4d-b8fe-4743-82dd-9c1db019f298.html?seed=1767342671&r=60433924#r_60433924
问题总结:什么点声母时不出韵母???!!!
应该是输入法相关的组件选择的不全
问题总结:为什么点软件盘的CTRL+SPACE就不能弹出输入法状态条,外接键盘就不行。是微软的SIP软件盘的问题吧,可是又不公开源码,让咱们怎么去改善这个功能啊???!!!
应该是设计就是如此,没有改善的方法
问题总结:如果要在软件上下功夫解决这拼音输入的问题,要怎么办???!!!
从软件上解决,也是可行的。至少我知道,可以写出自己的输入切换按键(与任务栏上MS提供的输入法切换按键一样)。
4楼朋友,最主要的还是第一个问题。您说的缺组件,是缺组件啊。我该加的也都加了啊。anyway,感谢你热心的帮助。
我的第2个问题总结那里有个地方多打个“不”字,造成意思完全错了。在些改正
问题总结:为什么点软件盘的CTRL+SPACE就不能弹出输入法状态条,外接键盘就((( 行 )))。是微软的SIP软件盘的问题吧,可是又不公开源码,让咱们怎么去改善这个功能啊???!!!
我从软件上解决了。。。。
这个问题搞了我3天。就在几分钟前搞定。。。
跟你有同感呀。。解决思路跟你一模一样!
顶...
楼主也写个博客吧,方便后人!
我虽然能输中文,但是一个字一个字的出。
在对话框里设一个BUTTON
-
- CWnd * pWnd = GetDlgItem(IDC_EDIT1);
- // pWnd->SetFocus();
- ImmSimulateHotKey(pWnd->GetSafeHwnd(), IME_CHOTKEY_IME_NONIME_TOGGLE);
怎么没人说话了!这个问题还是没有人可以解决吗?软件上解决那也是逃避问题啊,大家帮帮忙啊!!!
引用: 引用 10 楼 richyaoyuan 的回复:
怎么没人说话了!这个问题还是没有人可以解决吗?软件上解决那也是逃避问题啊,大家帮帮忙啊!!!
因为我定制的中文系统,从来没有出现过不能输入汉字的情况。
至于LZ想要的软件盘的CTRL+SPACE实现弹出输入法状态条,在其他人试的结果,我们从来没有这种需求。
楼主把问题想简单了,输入法分为SIP和IME两种,CE下面的一般用SIP的输入法,你和IME的真是自找死路。
微软自带的拼音,不适合商业用途,要想用起来,你最好自已开发输入法,或者购买输入法。网上很多的T9输入法,很多的BUG,还有那个自由拼音,很多BUG都解决不了!
谢谢楼上众哥们儿的支持!!!可是,不管这个输入法适不适合商用,遇到这样的怪问题,得解决啊。就像是用应用软件能调出状态条,可以用全拼输入汉字,可是也不能在每个窗口都加上一个获得焦点然后调输入法状太条的代码啊,这样程序结构的改动太大了!而且程序的可维护性也不高了。关键是要在根本上解决这个问题啊,为什么就无法输入呢?点韵母板也不行,只是输入一个小点点
如果有遇到过的朋友,请帮忙啊!
自己顶!!又发现一个同样问题的贴子。
http://www.cnemb.com/forum/read.php?tid=16090
楼主辛苦了,我也曾遇到过输入法的问题,就是你上面说的第一个问题,没有韵母,造成的原因是组件冲突,具体的忘记了,感谢楼主的认真,值得学习。
最近也在研究,我是在WinCE5.0下使用的,还没发现楼主所说的问题,先做个记号,明天去公司看看研究一下…