前天因客戶的需要,需要在wince6.0的系統中新增以色列語言的鍵盤到系統中,本以為是很簡單的事情,因為之前在wince5.0下也有做過在系統中增加鍵盤的經歷了,所需要的工作如下:
在plarform.bib中加入下面的內容:
if bsp_hebrew
largekb.dll $(_flatreleasedir)\largekb.dll nk shk
smallkb.dll $(_flatreleasedir)\smallkb.dll nk shk
endif bsp_hebrew
在這裡環境變數來根據專案需要是否在系統中包含這兩個鍵盤。
在platform.reg中加入下面的內容:
if bsp_hebrew
;;;;;;;;;;;;;;;;;;;;;;;;;;add for largekb;;;;;;;;;;;;;;;;;;;;;;;
[hkey_classes_root\clsid\]
@="largekb"
[hkey_classes_root\clsid\\defaulticon]
@="\\windows\\largekb.dll"
[hkey_classes_root\clsid\\inprocserver32]
@="\\windows\\largekb.dll"
[hkey_classes_root\clsid\\issipinputmethod]
@="1"
;;;;;;;;;;;;;;;;;;;;;;;;;add for smallkb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[hkey_classes_root\clsid\]
@="smallkb"
[hkey_classes_root\clsid\\defaulticon]
@="\\windows\\smallkb.dll"
[hkey_classes_root\clsid\\inprocserver32]
@="\\windows\\smallkb.dll"
[hkey_classes_root\clsid\\issipinputmethod]
@="1"
endif bsp_hebrew
把largekb.dll和smallkb.dll拷貝到release的目錄下。
; sip im values
; default keyboard initial delay and autorepeat
[hkey_current_user\controlpanel\keybd]
"initialdelay"=dword:177
"repeatrate"=dword:8
[hkey_classes_root\clsid\]
@=loc_keyboard
"kbmode"=dword:5
[hkey_classes_root\clsid\\inprocserver32]
@="\\windows\\msim.dll"
[hkey_classes_root\clsid\\issipinputmethod]
@="1"
[hkey_classes_root\clsid\\defaulticon]
@="\\windows\\msim.dll,0"
; @cesysgen if ce_modules_msim
msim.dll $(_flatreleasedir)\msim.dll nk sh
; @cesysgen endif
經過比較才發現msim.dll後面對應的是sh,而不是shk,發現這個問題後才忽然醒悟鍵盤是應用程式dll,不屬於核心態,所以不能是shk。就這樣,把第1步中的shk都改為sh後就正常使用那兩個鍵盤了。
WINCE6 0新增特定的軟體鍵盤
前天因客戶的需要,需要在wince6.0的系統中新增以色列語言的鍵盤到系統中,本以為是很簡單的事情,因為之前在wince5.0下也有做過在系統中增加鍵盤的經歷了,所需要的工作如下 1.在plarform.bib中加入下面的內容 if bsp hebrew largekb.dll flatreleas...
wince6 0新增外部字型庫
初始化對話方塊時先 addfontresource l sdmmc msyh.ttf sdmmc是sd卡路徑下 然後在繪製函式裡面新增你要加的onpaint 為了防止重繪,所以先建立記憶體dc logfont lf int noldbkmode hfont hfontold,hfontnew cre...
wince 6 0 的編譯錯誤
剛才新增wince6.0 對mfc的支援,只是在platform.bib中增加了幾個mfc相關的dll而已,按照wince5.0 經驗,就是執copy file to release directory就可以了,但是我執行它之後去工程目錄下看並沒有更新platform.bib,不知道咋回事,後來我手...