首頁>科技>

輸入法狀態(中、英、全半角)用一個數值表示,網上很多代碼都是直接判斷這個狀態值是否某個數值,這實際上是錯的。天下代碼一大抄,一個人錯了大家都跟著錯。

其實輸入法狀態需要按位判斷。

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

判斷輸入法是否開啟中文標點,應當這樣寫:

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

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

上面第一個返回值表示輸入法是否打開,mode 為1 表示半角標點, mode 為 2 表示全角標點,mode 為 3 表示開啟中文標點。

這個方法支持所有操作系統,支持所有輸入法(這都不支持的輸入法如果你也敢用 —— 那就只能佩服了)。

下面我們寫一個輸入法提示工具,先看效果:

原理就是用一個 plus 控件跟著鼠標走,你可以用代碼畫得更酷一些,plus 控件可以直接顯示圖標、文字圖標、動畫這些 …… 當然這種事情輕快實用更重要,動畫太多就程序員看得高興,用戶不一定喜歡。

基於上面的原理,我開發了開源軟件 ImTip ,ImTip 通過在輸入光標處顯示 2 個簡單的圖標 —— 提前知道中英、中英標點、全半角、大小寫、多語言鍵盤佈局等所有狀態。

再也不怕按錯了!

5
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • <談ps系列(9)|ps中畫筆工具的基本認識