VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

WIN7+中英文切換

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
sheuok



註冊時間: 2004-11-20
文章: 63
來自: Taiwan

第 1 樓

發表發表於: 星期日 十月 17, 2010 10:14 am    文章主題: WIN7+中英文切換 引言回覆

VFP在XP下可以使用的中英文切換(IMEMode),到WIN7系統就無法使用
為解決客戶習慣中英文自動切換的便利,特別找出WIN7下使用中英文切
換的用法,整理如下:

為達成VFP在WIN7下可以自動切換中英文,步驟如下:

1.將WINAPI切換"語言區"寫成函數(傳入參數 0:忽略 1:中文 2:英數)
uf_中英切換(ulp_模式)
2.在物件的When方法程序中加上一行
uf_中英切換(This.IMEMode)

用到的WINAPI,請先宣告
Declare Long ActivateKeyboardLayout In USER32 Long, Integer
Declare Long LoadKeyboardLayout In WIN32API String, Long

使用前請執行:
LoadKeyboardLayout('00000409',1) &&-載入EN(US)
LoadKeyboardLayout('00000404',1) &&-載入中文語言區(此行可以不執行)

中英文切換函數範例:
Func uf_中英切換(ulp_模式)
If ulp_模式=0
Return
Endif
If ulp_模式=1 &&-IMEMode=1
ActivateKeyboardLayout(0x04040404,0)
Else &&-英
ActivateKeyboardLayout(0x04090409,0)
Endif
EndFunc

說明:
WIN7的輸入法切換已成兩部份.先切換語言區,再切換輸入法,WIN7
下ActivateKeyboardLayout僅能切換語言區,無法切換輸入法(此部份
尚在找資料,希望可以找到相關資訊),因此只要將EN(US)載入,中文
語區中只放您需要的中文輸入法,請將 中文(繁體)-美式鍵盤 移除,改用
EN(US)取代英數輸入,如此便可利用語言區的切換達到中英文切換的目的
如果狐友手上有WIN7輸入法切換的WINAPI用法,特別懇請賜教!
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
superman



註冊時間: 2005-06-07
文章: 8


第 2 樓

發表發表於: 星期一 十一月 01, 2010 2:23 pm    文章主題: 引言回覆

我測試您的方法是可行的,
但當有新增輸入法2010 就大亂了(幾乎都會切到中文),
把輸入法2010(新注音2010 新倉頡2010 ...)移除 就正常了
回頂端
檢視會員個人資料 發送私人訊息
Watermelon



註冊時間: 2005-01-22
文章: 197


第 3 樓

發表發表於: 星期四 八月 16, 2018 9:10 pm    文章主題: 引言回覆

請問除了移除新注音2010 新倉頡2010還有其他解決方法嗎?
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作