分享

准确判断输入法状态,代码很简单

 只怕想不到 2022-05-24 发布于湖北

输入法状态(中、英、全半角)用一个数值表示,网上很多代码都是直接判断这个状态值是否某个数值,这实际上是错的。天下代码一大抄,一个人错了大家都跟着错。

其实输入法状态需要按位判断。
例如判断输入法的中/英状态用 aardio 应该这样写:

3 & key.ime.control(,1/*_IMC_GETCONVERSIONMODE*/)

判断输入法是否开启中文标点,应当这样写:

0x400 & key.ime.control(,1/*_IMC_GETCONVERSIONMODE*/)

aardio 提供了一个更简单的函数:

var openState,mode = key.ime.state();

上面第一个返回值表示输入法是否打开,mode 为1 表示半角标点, mode 为 2 表示全角标点,mode 为 3 表示开启中文标点。

这个方法支持所有操作系统,支持所有输入法(这都不支持的输入法如果你也敢用 —— 那就只能佩服了)。

下面我们写一个输入法提示工具,先看效果:

图片


原理就是用一个 plus 控件跟着鼠标走,你可以用代码画得更酷一些,plus 控件可以直接显示图标、文字图标、动画这些 …… 当然这种事情轻快实用更重要,动画太多就程序员看得高兴,用户不一定喜欢。

这里简单说一下用 plus 做屏幕悬浮、鼠标穿透窗口的要点:
1、控件的「浮动透明」、「禁用」 属性设为 true ,控件的 「剪切背景」、「事件回调」 设为 false,控件的创建参数里加上 (不用加,请忽略这句)。
3、调用 winform.plus.orphanWindow(true) 让控件可以显示在窗口外部。

源代码很简单,我放到 aardio 自带范例里了,请自取:

图片

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多