关于输入法编程的疑问

wzn1987 2010-04-08 05:11:41
现在想编个输入法以实现一些特定字符的输入,遇到问题了,希望知道的朋友能够给解答下疑问:
1.输入法的原理是什么(拼音输入法)?
我们在输入汉字时是怎么样实现汉字输入的呢?如果是简单的输入英文的话应该是IMM接受到键盘信息,然后对应输出就可以了吧,汉字呢?是不是读取特定的字符集,取出符合标准的字符,然后输出呢?

2.关于字库的疑问
应为要处理的特殊字符很少,所以想额外制作一个字库,那字库只需要含有基本的标点符号信息再加上需要的特殊字符就可以了,不过要怎么制作字库呢?还有就是字库的取字问题,是不是就像哈希表那样,一个字对应一个KEY值,就像我输入"yun",就能取到它对应的“云”这个汉字呢?

3.最好就是该输入法的设计基本思想了,目前还没什么头绪,不过正在努力学习中,类似于“搜狗拼音输入法”那样的窗体是自己开发的吧?然后注册输入法,这样就能实现快捷键切换输入法了吗?


问题很多,我自己也在上网、看书查资料,不过相信大家肯定有这方面的高手,所以就发帖求教个,希望大家能够把自己的见解告知在下,先谢谢啦
...全文
213 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzn1987 2010-04-22
  • 打赏
  • 举报
回复
谢谢楼上回复
尹成 2010-04-21
  • 打赏
  • 举报
回复

请安装windows sdk for windows7,C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\winui\input目录下有输入法范例,
例如sougou输入法必须按照微软的接口来开发输入法


输入法的设计其实就是设计一个Dll文件,然后修改他的扩展名(已经好长时间了,所以忘记了)。安装到操作系统后由系统统一调用。
具体过程是:
1. 当调用该输入法后,显示输入窗体(自己设计)
2. 监测键盘输入并显示输入字符,同时根据输入的字符在字库中查找相关的汉字并在汉字窗口中显示汉字。这一步比较重要,要输入与汉字显示同步进行。如果输入法的重码率高,还要设置PageUp和PageDown键的作用。
3. 按数字键提取出相关的汉字。
4. 汉字输入完成。

字库的制作:在做输入法时我为了图省事就建立个文本文件。然后把输入码和汉字放在里面就可以了。不过目前有好多方法,你参考其他的方案,我的太简单了,保密性也不好。

特殊字符最好别另外做个字库,就那么几个,没必要,再说,还要进行字库切换,麻烦

wzn1987 2010-04-21
  • 打赏
  • 举报
回复
谢谢楼上的回复,我现在直接就晕掉了,在网站上找了很多资料,是用ime的,不过现在仍然没什么头绪,网络上的输入法源代码打开就一大堆,更不不清楚从何看起,能具体的指点下吗?创建类库是创建MFC的类库吗?然后我需要实现什么?
shashengduguzhe 2010-04-08
  • 打赏
  • 举报
回复
输入法的设计其实就是设计一个Dll文件,然后修改他的扩展名(已经好长时间了,所以忘记了)。安装到操作系统后由系统统一调用。
具体过程是:
1. 当调用该输入法后,显示输入窗体(自己设计)
2. 监测键盘输入并显示输入字符,同时根据输入的字符在字库中查找相关的汉字并在汉字窗口中显示汉字。这一步比较重要,要输入与汉字显示同步进行。如果输入法的重码率高,还要设置PageUp和PageDown键的作用。
3. 按数字键提取出相关的汉字。
4. 汉字输入完成。

字库的制作:在做输入法时我为了图省事就建立个文本文件。然后把输入码和汉字放在里面就可以了。不过目前有好多方法,你参考其他的方案,我的太简单了,保密性也不好。

特殊字符最好别另外做个字库,就那么几个,没必要,再说,还要进行字库切换,麻烦。

呵呵,说的简单,其实做起来很麻烦,有问题我们继续交流。

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧