【发布时间】:2014-11-20 06:52:37
【问题描述】:
当用户更改 IME 时,我不知道日语 IME,例如)Microsoft IME -> Google IME
当我在中文中更改中文 ime 时,例如拼音 -> 双拼 他们不会将消息发送到任何窗口。
但是当我更改日语 ime 时,他们总是发送消息 WM_INPUTLANGCHANGE 但我的语言仍然是日语。 没有语言变化。这是 ime 的变化。
我想知道为什么。
【问题讨论】:
当用户更改 IME 时,我不知道日语 IME,例如)Microsoft IME -> Google IME
当我在中文中更改中文 ime 时,例如拼音 -> 双拼 他们不会将消息发送到任何窗口。
但是当我更改日语 ime 时,他们总是发送消息 WM_INPUTLANGCHANGE 但我的语言仍然是日语。 没有语言变化。这是 ime 的变化。
我想知道为什么。
【问题讨论】:
我回答我的问题是因为我发现了问题。 如果有人有同样的问题,我想给你一些提示。
当键盘布局改变时,应该发生WM_INPUTLANGCHANGE。 windows 有一个默认的键盘布局。您可以在注册表中找到这些布局。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard 布局
Alomost IME 作为一种语言被一一匹配。 但 Google IME 很特别。
日文 GoogleIME 有自己的键盘布局。 所以,当我尝试从 Microsoft IME 切换到 Google IME 时, 这不是 IME 的切换。 这是键盘布局的改变。
我没有检查所有 IME,但我认为某些 IME 有自己的键盘布局。
这就是调用 WM_INPULANGCHAGE 消息的原因。
【讨论】: