这个项目以前的CE下是没有输入法的,最近客户突然要求把中文输入加进去,方便操作。
本以为是件简单的事情,以为把几个组件加去就就可以了。
于是我像网上说的那样加入组件:
在应用程序中的文本框里加入:
SHSipPreference(m_hWnd, SIP_UP);//弹出输入面板
最后文本框得到焦点时是能弹出软键盘,可点那个“拼”字就是不好使,怎么输入都不行,可数字与英语能输进去。然后我就在CSDN及GOOGLE里找呀。找得我好多天,都没有合适的答案。只是有人提起过wordpad
于是我就把Wordpad组件加进去。编译,运行……
进去CE,打开WORDPAD,那输入法状态可算看到了。可以输入中文,只是有点慢,一个字一个字的输入。那软键盘的拼音还是用不了。
为什么我的应用软件的那个文本框不能输入中文呢?只有一个原因:没有调出输入法,只是把软键盘调出来了而以。。。。。
加入:ImmSimulateHotKey(hEdit,IME_CHOTKEY_IME_NONIME_TOGGLE)
可是还是调不出输入法,这可是MFC里的呀。为什么没用?在网上找呀找,查呀查,还是不知道所以然。
SHSipPreference(m_hWnd, SIP_UP);//弹出输入面板
ImmSimulateHotKey(hEdit,IME_CHOTKEY_IME_NONIME_TOGGLE)
以上两个函数我是在文本框得到焦点时触发的。可是为什么不起作用?这个问题至今我也不知道为什么。
后来无意中发现:当在对话框中加一个BUTTON,在BUTTON下:
SHSipPreference(m_hWnd, SIP_UP);//弹出输入面板
ImmSimulateHotKey(hEdit,IME_CHOTKEY_IME_NONIME_TOGGLE)
GetDlgItem(IDC_EDIT!)->SetFoucs();
这个时候居然能把输入法状态条给调出来,真是奇了怪了!MS的是里面写的是什么破代码。WINCE 4.2真是垃圾。我在我自己的开发板上都试过了。添加几个组件输入法就能用......。。。。
看用是CE4.2的问题呀。。。
在CSDN里面,有很多出现过我一样问题的
这里总结得比较全面:http://topic.csdn.net/u/20091015/13/c834c108-4e70-4961-a2dd-25aac0f4730e.html
还有这位comey兄弟解决了,可是对我不管用:http://topic.csdn.net/u/20090723/18/19dacf1f-e206-43c1-b276-69bcd1c5158e.html?68058 还是得谢谢他关注自己发起过的话题。谢谢!
对于为什么微软的拼音输入法点“拼”打不出字,点“韵”没反应,还要请高人做答,我只能说这可能是CE4.2的一个BUG?
唉!看似简单的输入法,原来也是这么麻烦!呜呼!没有天理吧!