Board logo

標題: 客戶端輸入法(全形半形)的字串處理 [打印本頁]

作者: 小鐵    時間: 2020-5-31 00:29     標題: 客戶端輸入法(全形半形)的字串處理

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

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

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

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

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

如此一來就處理了微軟注音輸入法的字串
不過因為我沒有用雅虎輸入法&無蝦米,或許對這兩種也可能有影響
但多數應該還是微軟注音,以後有空再來處理。
作者: a8612046    時間: 2020-5-31 08:47

切換到 行列 輸入法的時候

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

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

如圖
作者: 小鐵    時間: 2020-5-31 09:31     標題: 回復 2# 的帖子

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

畢竟微軟注音比較主流,如果能夠蒐集大家的智慧
就可以一併完成修正了
作者: yang    時間: 2020-5-31 10:02

我覺得可以直接取消顯示
現在都視窗化在玩遊戲
這個資訊自己看WINDOWS右下角工作列就可以了
作者: re32767    時間: 2020-6-2 05:49

我的方法是直接把全形/半形這四個字元一律改成  兩個全形空白鍵
這樣一來它實際上還是會疊加,但不會看到任何東西
很多遊戲的輸入欄都不會附帶全半形提示,所以這也是很正常的
作者: 小鐵    時間: 2020-6-3 18:21     標題: 回復 5# 的帖子

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




歡迎光臨 We Love SA 石器時代研討中心 (http://lab.welovesa.com/) Powered by Discuz! 6.0.0