MiniGUI输入法的设计

MiniGUI 中的输入法模块作为一个独立的主窗口(IME)处理键盘输入,注册自身为输入法窗口以接收按键信息。当活动窗口改变时,桌面会发送 MSG_IME_SETTARGET, MSG_IME_OPEN 或 MSG_IME_CLOSE 消息通知输入法窗口。窗口需处理这些消息以显示或隐藏输入法,翻译按键并通过 MSG_CHAR 发送到目标窗口。" 102141979,8793685,黄金分割数的精确计算,"['数学', '数值计算', '算法', '数学常数']
摘要由CSDN通过智能技术生成

 

输入法提供了将标准键盘输入翻译为适当语种的文字的能力。MiniGUI 中也包含有标准的中文简体输入法,包括全拼、五笔和智能拼音等等。MiniGUI 的输入法是一个相对独立的模块(称为 IME),它实际是一个特殊的主窗口。该主窗口将在启动之后,首先将自己注册为输入法窗口。这样,MiniGUI 的 desktop 就知道首先要将按键信息发送到这个主窗口之中,而不是当前的活动主窗口。当活动主窗口发生变化时,desktop 会通知输入法窗口当前的活动窗口。这样,当输入法窗口接收到按键消息并且翻译为适当的字符之后,就可以将其发送到当前的活动窗口。

为了实现 desktop 和 IME 窗口之间的交互,MiniGUI 为输入法窗口定义了如下消息,当活动窗口发生变化时,MiniGUI 会向 IME 窗口发送这些消息:

  • MSG_IME_SETTARGET:发送该消息设置输入法的目标活动窗口;
  • MSG_IME_OPEN:发送该消息告诉输入法窗口,当前活动窗口是具有 WS_EX_IMECOMPOSE 扩展风格的窗口,所以应该显示输入法窗口。
  • MSG_IME_CLOSE:发送该消息告诉输入法窗口,当前活动窗口不具有 WS_EX_IMECOMPOSE 扩展风格,所以应该隐藏输入法窗口。</
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值