你怎么用IME?

CiN*_*iNN 14 windows winapi ime

我想制作一个处理用户输入的控件,所以我希望能够处理不同的键盘,其中一种方法是使用IME.

如果您不处理它,当您有IME激活时会出现一个浮动窗口(例如日语写入活动).我发现需要处理的消息,但我不知道如何发送我正在捕获到IME的密钥以及何时获得有效的转换字符.

Lef*_*ium 25

我是Microsoft SDE,用于维护(Windows和Office)韩语IME一段时间......

不幸的是,最好的IME API文档由非Microsoft站点提供:


这是Microsoft官方文档:输入法管理器(MSDN)

还有一个基于文本服务框架(TSF)的新的,更高级的IME,微软希望你使用它,但它更复杂,旧的API被很好地模拟.如果您不需要任何高级功能(例如通过平板电脑/语音识别/发烧友IME /等输入),那么使用旧的API就足够了.

关于文本服务框架的最佳文档是由另一个Microsoft开发人员编写的TSF Aware Blog.如果你走这条路,Eric Brown甚至可以亲自回答你的问题.

以下是TSF的官方Microsoft文档:Text Services Framework(MSDN)

您可能觉得有用的TSF的一个特性是能够抑制IME的渲染(例如,需要自动渲染IME的全屏游戏).只需告诉TSF你的应用程序将呈现IME GUI,然后实现一个空的呈现方法:UILess模式概述(MSDN)

  • 更新的链接:[ime_input.h](https://chromium.googlesource.com/chromium/chromium/+/8da845c82ec64ba85c8222e61c249244a492bebd/chrome/browser/ime_input.h)[ime_input.cc](https://chromium.googlesource.com /chromium/chromium/+/8da845c82ec64ba85c8222e61c249244a492bebd/chrome/browser/ime_input.cc) (2认同)