状态、组合和候选窗口

状态、组合和候选窗口构成了 IME 的用户界面。 状态窗口指示 IME 处于打开状态,并为用户提供设置转换模式的方法。 当用户输入文本时,将显示合成窗口,并根据转换模式显示输入的文本或显示转换后的文本。 候选窗口与合成窗口一起显示。 它包含组合窗口中所选字符) (可选字符的“候选项”列表。 用户可以滚动浏览候选项列表并选择所需的字符,然后返回到合成窗口。 用户可以通过这种方式撰写所需的文本,直到完成合成字符串并关闭窗口。

IME 以WM_IME_CHARWM_IME_COMPOSITION/GCS_RESULT消息的形式将组合字符发送到 IME 感知应用程序。 如果应用程序不处理这些消息, DefWindowProc 函数会将这些消息转换为一个或多个 WM_CHAR 消息。

默认情况下,操作系统会自动创建和管理状态、组合和候选窗口,以满足文本输入要求。 对于许多应用程序,这种默认处理就足够了。 这些应用程序完全依赖于操作系统来提供 IME 支持,据说是“IME 不知道”,因为它们不知道操作系统为管理 IME 窗口而执行的许多任务。

另一方面,IME 感知应用程序参与 IME 窗口的创建和管理。 此类应用程序通过向这些窗口发送消息以及截获和处理来自窗口的消息来控制默认窗口的操作、位置和外观。 在某些情况下,应用程序会创建自己的 IME 窗口,并为其自定义状态、组合和候选窗口提供完整的处理。

关于输入法管理器