打印

客戶端輸入法(全形半形)的字串處理

客戶端輸入法(全形半形)的字串處理

有在碰客戶端的應該都知道畫面右下角的全形半形會不斷疊加造成畫面凌亂
看久了很不舒服

查了Client Code後發現是因為字串的處理沒有很完整
於是自己做了點修正,只取最後的 2 bytes 來顯示

在ime.cpp下
第58行--lpstr1=GetImeDescString();

在這行下方新增以下程式碼:

std::string stdstr(lpstr1,strlen(lpstr1)-4,4);
lpstr1 = const_cast<char *>(stdstr.c_str());

如此一來就處理了微軟注音輸入法的字串
不過因為我沒有用雅虎輸入法&無蝦米,或許對這兩種也可能有影響
但多數應該還是微軟注音,以後有空再來處理。
本帖最近評分記錄
  • yang 貢獻值 +14 感謝分享 2020-5-31 10:02

TOP

切換到 行列 輸入法的時候

由於行列輸入法沒有半全形 所以還不會有問題

但是打完字之後 顯示就會出錯

如圖
附件: 您所在的用戶組無法下載或查看附件
BuDingDigger still Diggin'

TOP

回復 2# 的帖子

沒錯,因為我只是針對微軟注音的輸入法的部分做處理
倉頡、大易、行列等輸入法可能都要因地適宜去修正

畢竟微軟注音比較主流,如果能夠蒐集大家的智慧
就可以一併完成修正了

TOP

我覺得可以直接取消顯示
現在都視窗化在玩遊戲
這個資訊自己看WINDOWS右下角工作列就可以了
【★】我非常熱愛石器

TOP

我的方法是直接把全形/半形這四個字元一律改成  兩個全形空白鍵
這樣一來它實際上還是會疊加,但不會看到任何東西
很多遊戲的輸入欄都不會附帶全半形提示,所以這也是很正常的

TOP

回復 5# 的帖子

你這個方法也很好耶,我都沒有想到可以這樣
但如果讓空白一直在疊加,會不會有溢位或者是造成當機的可能啊?

TOP