|
3、关于自定义消息:UIWndProc在WM_IME_NOTIFY中提供了一个IMN_PRIVATE,最初我理解为这个消息应该和WM_USER一样,当我需要不只一人自定义消息时只需要在这个ID的基础上增加值就好了。但事实是您定义的值可能是系统已经占用的(视Windows的版本而异),您能够使用的自定义消息应该只有这一个,为了指示多个消息类型,我使用的方法是在WM_IME_NOTIFY的LPARAM中进行区分。 逆风编程精品
4、调试信息输出:一般编写输入法都不会使用MFC,为了输出调试信息,一般只能使用OutputDebugString这个API,在示例代码中的helper.c中我编写了一个模拟TRACE的函数Helper_Trace,您可以用这个函数来将调试信息输出到调试窗口。
5、最后再谈一谈输入法类型:前面提到输入法分为外挂式和IME两种,但是目前一些输入法发展了第3种类型,那就是结合这两种类型的优点。例如拼音加加,启动拼音加加您会发现进程列表里会多一个拼音加加的服务进程,其实它才是拼音加加输入法的内核即数据处理部分。拼音加加的IME部分只是一个外壳,它提供传统的IME输入法一样的系统兼容性。在我的输入法中也采用了这种结构,使用内存文件映射及普通的Windows消息结合来实现两个进程间的通讯。您可以在我的输入法的源代码中找到进程间的通讯源代码及输入法代码。
好象没有更多的经验可言,总之,输入法其实并不神秘,在我看来,只要能够在VC中跟踪代码,我就不相信我会搞不定它!
一家之言,如果有什么错误,还请大家批评指正。
关于示例代码:示例代码是我编写的一个最基本的输入法程序的框架,它显示您输入的编码,并显示一个固定的重码,输入空格后实现该重码上屏的功能。通常我们能找到的代码是一个完整的工程,这样对于初学输入法编程的人可能会陷入大量的非输入法编码框架的阅读中,对于实际的输入法编程并没有多大的意义。这份代码就是为了让您摆脱那些无谓代码的阅读。
如果需要更加完整的输入法代码,推荐参考“自由拼音”的源代码,当然也可以参考我写的输入法《启程输入之星》的代码,您可以在我的网站上找到下载,http://www.setoutsoft.cn。这份代码的界面部分我自认为是当前的输入法中写得非常出色的。 本文章更多内容:<<上一页 - 1 - 2 - 3 - 4 |