我想做一个处理用户输入的控件,所以我想要能够处理不同的键盘,其中一种方法是使用IME.
如果您不处理它,当您有IME活动时(例如日语写入活动),会出现一个浮动窗口.我发现需要处理的消息,但是我不知道如何发送我正在捕获到IME的密钥,何时获得一个有效的转换字符.
我是一个微软SDE,曾经维护(Windows和Office)韩国IME一段时间…
原文链接:https://www.f2er.com/windows/371380.html不幸的是,最好的IME API文档是由非Microsoft网站提供的:
> Google Chrome浏览器中的IME编程示例(非常注释的代码!)
> Win32 Multilingual IME Overview for IME Development
> Win32 Multilingual IME Application Programming Interface
(对于微软的信用,最后两个以前是Windows驱动程序开发工具包的一部分)
这是Microsoft的官方文档:Input Method Manager (MSDN)
还有一个基于Microsoft希望使用的文本服务框架(TSF)的新的更先进的IME,但是它更复杂,并且旧的API被模拟得很好.如果您不需要任何高级功能(如通过平板电脑/语音识别/爱好者IME / etc输入),则使用旧的API就足够了.
文本服务框架的最佳文档是由另一个Microsoft开发人员编写的TSF Aware Blog.如果你走这条路线,埃里克·布朗甚至可以亲自回答你的问题.
以下是TSF官方的Microsoft文档:Text Services Framework (MSDN)
您可能会发现有用的TSF的一个功能是抑制IME渲染的能力(例如需要渲染IME本身的全屏游戏所需).简单的告诉TSF你的应用程序将渲染IME GUI,然后实现一个空的渲染方法:UILess Mode Overview (MSDN)