函式功能
激活鍵盤布局。該函式Windows NT和Windows 95中的實現有很大不同。本參考頁中首先給出了完整的Windows NT的實現,下來又給出了Windows 95版本的實現,以便大家更好地了解二者的區別。在Windows NT中ActivateKeyboadLayout函式激活一種不同的鍵盤布局,同時在整個系統中而不僅僅是調用該函式的進程中將該鍵盤布局設為活動的。函式原型
HKL ActivateKeyboardLayout( HKL hkl,UINT Flags);基本參數
hkl:將被激活的鍵盤布局的句柄。該布局必須先調用LeadKeyboadLayout函式裝入,該參數必須是鍵盤分局的句柄,或是如下的值中的一種:HKL_NEXT:在系統保持的,己裝入的布局的循環鍊表中,選擇下一布局。
HKL_PREV:在系統保持的,已裝入的布局的循環鍊表中,選擇前一布局。
Flags:定義鍵盤布局如何被激活。該參數可取如下的一些值:
LFREORDER:若該位被設定,則已裝入的鍵盤布局的循環鏈路表將被重新排序。若該位沒有設定,則循環鏈路表的順序不變。例如,若用戶激活了英語鍵盤布局,同時依序裝入了法語、德語、西班牙語鍵盤布局,然後通過設定KLF_REORDE位激活德語鍵盤布局,則會產生如下順序:德語、英語、法語、西牙語鍵盤布局。若激活德語鍵盤布局時未設定KLF_REORDER位,則產生如下的鍵盤布局的鍵盤布局序列:德語、西班牙語、英語、法語。若裝入的鍵盤布局少於三種,則該標誌域的值不起作用。
KLF_SETFORPROCESS:在Windows NT 5.0以上版本中使用。該參數用於整個進程中激活指定的鍵盤布,並向當前進程的所有執行緒傳送WM_INPUTLANGCHANGE訊息。
KLF_UNLOADPREVLOUS:卸載先前活動的鍵盤布局。
返回值:如果函式調用成功,返回值為前一鍵盤布局的句柄。否則,返回值為零。若要獲得更多多錯誤信息,可調用GetLastError函式。
備註:在任一時刻可以裝入多種鍵盤布局,但一次僅能激活一種布局。裝入多種鍵盤布局使得可以快速地在多種布局之間切換。Windows 95 ACtivateKeyboadLayout函式為當前執行緒設定輸入語言。該函式接受一個鍵盤布局句柄,該句柄標識鍵盤的一個局部的和物理布局。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;頭檔案:winuser.h;庫檔案:user32.lib。