windows - 你如何使用输入法?

标签 windows winapi ime

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

如果您不处理它,当您启用 IME 时(例如,日语书写处于事件状态),会出现一个 float 窗口。我找到了需要处理的消息,但我不知道如何将我捕获的 key 发送到 IME 以及何时获得有效的转换字符。

最佳答案

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

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


这里是微软官方文档:Input Method Manager (MSDN)

还有一个基于文本服务框架 (TSF) 的新的、更高级的 IME,Microsoft 希望您使用它,但它更加复杂,而且旧 API 的模拟效果非常好。如果您不需要任何高级功能(例如通过平板电脑输入/语音识别/更高级的 IME/等),那么使用旧 API 就足够了。

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

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

您可能会发现 TSF 的一个有用功能是抑制 IME 呈现的能力(例如,需要自己呈现 IME 的全屏游戏需要)。只需告诉 TSF 您的应用程序将呈现 IME GUI,然后实现一个空的呈现方法:UILess Mode Overview (MSDN)

关于windows - 你如何使用输入法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/434048/

相关文章:

windows - 通过.Net应用程序将用户添加到Windows Azure Active Directory

c++ - CreateProcess() 可以授予管理员权限吗?

windows - 在系统启动时依次启动 cmd-scripts

更改 OpenGL 上下文的大小

c++ - 是否有任何 Windows 函数可以使用域名获取所有 OU(组织单位)名称?

Android IME 数据库建议

android - 创建android弹出键盘

windows - 如何获取通知区域图标列表?

c - 正确释放分配的虚拟内存

java - 当 EditText 中只有一个字符时防止退格