一区二区三区电影_国产伦精品一区二区三区视频免费_亚洲欧美国产精品va在线观看_国产精品一二三四

聯系我們 - 廣告服務 - 聯系電話:
您的當前位置: > 關注 > > 正文

當前通訊!美國英語布局的變體——MicrosoftNetwork

來源:CSDN 時間:2023-03-02 09:50:57

IME中包括一個引擎(它可以把按鍵轉換為語音和象形字符),還包括一個由常用象形文字組成的詞典。當用戶敲擊按鍵時,IME 引擎會嘗試判斷應將其轉換為哪個或哪些象形字符。由于許多象形字符具有相同的發音,因此 IME 引擎的第一次判斷可能不是完全正確的。如果建議的字符不正確,用戶可以從同音列表中進行選擇;在一些更先進的 IME 中,用戶選中的同音字會變為 IME 引擎下一輪判斷時的首選字符。


(資料圖)

MicrosoftDeveloper Network (MSDN) 文檔(位于 http://msdn.microsoft.com)和編程 API 用一種名為“輸入法區域設置標識符”的變量類型代表輸入語言,它在先前的文檔中被稱為“鍵盤布局處理”(HKL) 并且現在仍被用作類型標識符。HKL 是一種古老的名稱,當時只能從鍵盤進行輸入。輸入法區域設置標識符名稱是一個 32 位的值,它由語言標識符(低 WORD)和設備標識符(高 WORD)的十六進制值組成。(參見下方的圖 7。)例如,美國英語的語言標識符為 0x0409,因此美國英語主布局被命名為 "00000409"。美國英語布局的變體(例如 Dvorak 布局)被命名為 "00010409"、"00020409" 等。設備標識符并不僅限于鍵盤和 IME;現在可通過一些較復雜的機制(例如語音和文字識別引擎)來輸入數據。例如,在 Windows XP 中作為一種系統服務提供的 Microsoft Windows Text Services Framework (TSF),它可以實現與來源無關的高級文字輸入。

處理輸入語言最簡單的方式是在需要用戶輸入的所有場合都使用操作系統提供的標準控件。例如,通過使用 Unicode 編輯控件或 Rich edit 控件,可以使應用程序能夠處理多種語言的文字輸入。操作系統會以一種對應用程序透明的方式自動處理輸入語言。文字 API 使用的是一種標準的多行編輯控件,它可以避免處理輸入語言時的麻煩。

對于一些需要完全控制輸入語言處理方式的高級應用程序(例如文本編輯器),它們應該監視(并能夠響應)用戶的改動。當用戶通過單擊任務欄上的語言指示符或按下“左邊 Alt+Shift”鍵來選擇某種輸入語言時,輸入語言不會自動改變– 兩個操作都會生成一個活動的應用程序必須接受或拒絕的請求。為了響應熱鍵組合或鼠標單擊任務欄上的語言指示符后產生的事件,系統會向焦點窗口發送一個 WM_INPUTLANGCHANGEREQUEST 消息,如下圖所示。如果應用程序接受該消息并將其傳遞給 DefWindowProc,系統將啟動切換輸入語言的操作并發送一個 WM_INPUTLANGCHANGE 消息。如果輸入法是 Text Services Framework (TSF) 的一部分,則此過程會略有不同,這時只發送 WM_INPUTLANGCHANGE。當系統成功完成改變后,會生成一個 WM_INPUTLANGCHANGE 消息。WM_INPUTLANGCHANGE 消息的 lParam 變量包含新輸入語言的輸入法區域設置標識符(即 HKL)。

不支持多語言的應用程序會拒絕 WM_INPUTLANGCHANGEREQUEST 消息。它可能會拒絕任何或全部WM_INPUTLANGCHANGEREQUEST 消息,也可能會先執行一些測試。例如,此消息的 wParam 變量是一個 Boolean 值 bLangInSystemCharset,它將指出請求的輸入語言是否能夠在當前的系統區域設置中呈現出來。在處理 Unicode 應用程序時呈現輸入語言并不麻煩,但是,非 Unicode 應用程序應該監視此值(實際上也是如此),否則它們會顯示錯誤的字符。

與生成 WM_INPUTLANGCHANGEREQUEST 消息來響應用戶請求的系統類似,應用程序也會通過調用 ActivateKeyboardLayout API 來啟動改變輸入語言的操作。

(注:win7系統似乎已經拋棄HKL,所有HKL有關的API在win7系統下似乎全部失效)

Windows 2000 和 Windows XP 中的 IME 模塊適合于向應用程序傳遞用戶輸入信息的大型機制,而且像其他輸入法一樣,最簡單、最安全的輸入內容處理方式是使用標準系統控件,例如編輯字段和 Rich edit 控件等。如果您不是要編寫 IME 軟件包或自定義自己的 IME 用戶界面 (UI),您可以使用標準輸入 API,它可以為您處理 IME 的所有復雜情況。

對某種輸入語言來說,是使用 IME 還是使用鍵盤來輸入對用戶而言都完全透明。無論用戶是切換 IME 還是西方鍵盤布局,過程都完全相同。這兩種操作都是通過單擊任務欄上的語言指示符或輸入某個快捷鍵組合來完成。而且,應用程序不關心使用的輸入法,因為切換 IME 與切換鍵盤布局會生成同樣的消息:WM_INPUTLANGCHANGEREQUEST(如果 IME 不是 TSF 的一部分)和WM_INPUTLANGCHANGE。應用程序可通過調用 ActivateKeyboardLayout 來激活特定的 IME。IMM 可以作為中介來管理 IME與應用程序之間的通信。當用戶使用 IME 鍵入信息時,每個按鍵都發出一條帶有 GCS_COMPSTR 標記的 WM_IME_COMPOSITION 消息,指出合成字符串有更新。消息的 WPARAM 值將返回字符串的第一個字符,其余字符可以通過帶有相同 GCS_COMPSTR 標記的 ImmGetCompositionString API 進行檢索。然后當用戶按下 Enter 鍵或單擊某個字符在文檔中放置它時,默認情況下,IME 會發出一條帶有 GCS_RESULTSTR 標記的 WM_IME_COMPOSITION 消息。(您可以使用相同的 API 和 GCS_RESULTSTR 標記來檢索提交的字符串。)如果后面的 WM_IME_COMPOSITION 消息被發送到 DefWindowProc,則對于所提交字符串中的每個字符,它都會發出一條包含實際字符的 WM_IME_CHAR 消息。對于非 Unicode 窗口,如果 WM_IME_CHAR 消息包括一個雙字節字符并且應用程序將此消息傳遞給 DefWindowProc,則 IME 會將此消息轉換為兩條 WM_CHAR 消息,每條包含雙字節字符中的一個字節。如果應用程序略過任何一條消息,則它將由應用程序的 DefWindowProc 函數進行處理,此函數會通知 IMM 該消息被忽略。IME 然后會通過多個 WM_CHAR 消息逐字節重新發送字符或字符串。對于 Unicode 窗口,WM_IME_CHAR 和 WM_CHAR 是相同的。

以下各節將討論對于 Windows 中所運行應用程序的三個離散的 IME 支持級別:不支持、部分支持和完全自定義的支持。應用程序可以小規模自定義 IME 支持(例如通過重新定位窗口),也可以徹底改變 IME UI 的外觀。

無 IME 支持:不識別 IME 的應用程序通常會忽略所有特定于 IME 的 Windows 消息。大多數針對單字節語言的應用程序不能識別 IME。

不識別 IME 的應用程序會通過預定義的全局類(對應被稱為 "IME")來繼承活動 IME 的默認 UI。這一全局類具有與基于 Windows 的任何其他常用控件相同的特性。對于每個線程而言,Windows 2000 和 Windows XP 都會根據 IME 全局類自動創建一個窗口,所有不識別 IME 的線程窗口都會共用此默認的 IME 窗口。不識別 IME 的應用程序將關于 IME 的消息傳遞給 DefWindowProc 函數時,DefWindowProc 會將其發送到默認 IME 窗口。

部分 IME 支持:識別 IME 的應用程序可以創建其自己的 IME 窗口。部分支持 IME 的應用程序可以使用此應用程序 IME 窗口來控制特定的 IME 行為。例如,通過調用函數 ImmIsUIMessage,應用程序可以將與 IME 的 UI 相關的消息傳遞給應用程序的 IME 窗口,應用程序可以在這里處理這些消息。允許應用程序變更窗口位置或屬性的其他 API 函數包括 ImmSetCandidateWindow、ImmSetCompositionFont、ImmSet-CompositionString、ImmSetCompositionWindow以及 ImmSetStatusWindowPos。包含部分 IME 支持的應用程序可使用這些函數來設置 IME UI 窗口的樣式和位置,但是 IME 動態鏈接庫 (DLL) 仍負責繪制這些窗口– IME UI 的常規外觀將保持不變。

完全 IME 支持則截然不同,完全識別 IME 的應用程序將接管通過 IME DLL 繪制 IME 窗口(狀態、復合以及候選窗口)的工作。此類應用程序可以完全自定義這些窗口的外觀,包括確定其屏幕位置以及選擇使用哪些字體和字體樣式來顯示窗口中的字符。對于文字處理程序以及主要功能是文字處理的類似程序,這會使它們從流暢的 IME 交互以及創建“自然的”用戶交互界面中受益,因此顯得特別方便和有效。IME DLL 仍將決定在 IME 復合窗口和候選窗口中顯示的字符,并且它還會運用算法來猜測字符并在 IME 字典中查找它們。

名詞解釋

HIMC : handle to inputcontext           輸入上下文句柄

HKL:          handleto keyboard layout       Input localeidentifier       鍵盤布局句柄

HWND:handle to window     窗口句柄

消息

WM_IME_NOTIFY:發送應用程序的變化通知到IME窗口。

wParam

命令,這個參數可以有如下的值

IMN_CHANGECANDIDATE      //候選字列表變化

IMN_CLOSECANDIDATE         //候選字列表

IMN_CLOSESTATUSWINDOW

IMN_GUIDELINE

IMN_OPENCANDIDATE   //打開候選字列表

IMN_OPENSTATUSWINDOW

IMN_SETCANDIDATEPOS

IMN_SETCOMPOSITIONFONT

IMN_SETCOMPOSITIONWINDOW

IMN_SETCONVERSIONMODE   //轉換模式的變化

IMN_SETOPENSTATUS

IMN_SETSENTENCEMODE

IMN_SETSTATUSWINDOWPOS

WM_IME_COMPOSITION:IME把修改組成狀態(composition status)作為按鍵的結果發送給應用程序。

GCS_COMPATTR

GCS_COMPCLAUSE

GCS_COMPREADSTR

GCS_COMPREADATTR

GCS_COMPREADCLAUSE

GCS_COMPSTR                           組合字符串

GCS_CURSORPOS

GCS_DELTASTART

GCS_RESULTCLAUSE

GCS_RESULTREADCLAUSE

GCS_RESULTREADSTR

GCS_RESULTSTR                          結果字符串

Lib支持:

Imm32.lib

責任編輯:

標簽: 應用程序

精彩放送:

新聞聚焦
Top 一区二区三区电影_国产伦精品一区二区三区视频免费_亚洲欧美国产精品va在线观看_国产精品一二三四
亚洲精品一级| 亚洲一区久久| 国产精品一区亚洲| 国产乱码精品一区二区三区不卡| 国产精品午夜在线观看| 亚洲第一网站免费视频| avtt综合网| 欧美夜福利tv在线| 欧美精品日韩一本| 国产午夜精品一区二区三区欧美| 91久久在线播放| 久久er99精品| 国产精品欧美日韩| 99国内精品久久久久久久软件| 久久久久久伊人| 国产精品综合网站| 亚洲午夜精品视频| 欧美视频网址| 亚洲黄色精品| 久久精品视频免费| 国产久一道中文一区| 999在线观看精品免费不卡网站| 久久综合精品国产一区二区三区| 国产精品久久久久aaaa九色| 亚洲欧洲一区二区三区| 美国十次成人| 一区免费在线| 久久久久久尹人网香蕉| 黄色成人免费网站| 久久久久久久综合| 一区二区三区中文在线观看| 久久国产免费| 国产欧美69| 午夜精品一区二区三区在线视| 欧美午夜精品一区| 亚洲欧美国产不卡| 国产精品视频免费在线观看| 性欧美暴力猛交69hd| 国产丝袜一区二区三区| 久久九九免费| 在线精品视频在线观看高清| 麻豆freexxxx性91精品| 91久久午夜| 欧美日韩成人| 午夜精品久久久久久久久久久久久| 欧美午夜一区二区| 性欧美超级视频| 精品91在线| 欧美片在线播放| 亚洲一区二区日本| 国产欧美一区二区精品秋霞影院| 欧美专区福利在线| 亚洲国产精品久久久久久女王| 美日韩在线观看| 夜夜精品视频| 国产在线乱码一区二区三区| 免费中文日韩| 99精品久久久| 国产欧美日韩精品在线| 蜜臀a∨国产成人精品 | 国产在线一区二区三区四区| 久久久精品国产免大香伊| 亚洲国产精品一区二区尤物区| 欧美精品情趣视频| 欧美中文在线视频| 日韩亚洲视频在线| 国际精品欧美精品| 欧美日韩成人一区二区| 欧美在线网站| 中日韩美女免费视频网址在线观看| 国产日产亚洲精品系列| 欧美成人一二三| 欧美在线91| 亚洲精品自在久久| 国产主播精品| 国产精品久久一卡二卡| 欧美成人黑人xx视频免费观看| 性色av一区二区三区在线观看| 亚洲人成网站999久久久综合| 国产欧美精品久久| 欧美色视频一区| 久久另类ts人妖一区二区| 亚洲特色特黄| 亚洲激情一区| 一区二区三区在线观看视频| 国产人成精品一区二区三| 欧美日韩在线观看一区二区| 欧美成人a视频| 久久亚洲欧美| 欧美在线地址| 欧美与黑人午夜性猛交久久久| 亚洲卡通欧美制服中文| 一区二区三区在线视频播放| 国产精一区二区三区| 欧美午夜在线一二页| 欧美精品日韩一区| 美女被久久久| 狼人社综合社区| 免费观看欧美在线视频的网站| 久久精品视频在线播放| 久久福利一区| 久久久久久9| 老鸭窝亚洲一区二区三区| 久久久久免费视频| 另类激情亚洲| 欧美—级高清免费播放| 欧美久久九九| 欧美精品在线免费观看| 欧美日韩国产一区二区三区| 欧美日韩精品高清| 国产精品v日韩精品v欧美精品网站| 欧美日韩妖精视频| 欧美日韩在线观看一区二区三区 | 国产亚洲精品bt天堂精选| 国产精品久久一级| 国产日韩精品一区观看| 国产日韩成人精品| 国语自产在线不卡| 亚洲国产成人一区| 亚洲激情一区二区三区| 夜夜嗨av一区二区三区中文字幕| 亚洲一区二区三区久久| 欧美中文字幕在线视频| 麻豆久久婷婷| 欧美日韩小视频| 欧美午夜片在线观看| 国产女主播一区二区三区| 黄色欧美成人| 日韩午夜中文字幕| 亚洲淫性视频| 久久婷婷影院| 欧美午夜精品| 国外视频精品毛片| 亚洲欧洲久久| 香蕉免费一区二区三区在线观看| 久久婷婷丁香| 国产精品国产a级| 激情校园亚洲| 一区二区日韩免费看| 亚欧成人在线| 欧美大秀在线观看| 国产日韩欧美一二三区| 最新69国产成人精品视频免费| 999在线观看精品免费不卡网站| 午夜精品久久久久久久久久久久 | 久久精品综合网| 欧美日韩激情网| 国产亚洲精品激情久久| 一区二区不卡在线视频 午夜欧美不卡'| 136国产福利精品导航网址| 亚洲深夜激情| 欧美成人一区二区三区| 国产欧美在线观看| 一区二区三区久久网| 久久综合激情| 国产情侣久久| 亚洲欧美精品| 欧美日韩一区二区在线观看| 国模一区二区三区| 亚洲欧美在线aaa| 欧美日韩1区2区| 亚洲国产精品va在线看黑人| 欧美自拍偷拍午夜视频| 国产精品嫩草久久久久| 99精品国产在热久久婷婷| 久久综合伊人77777蜜臀| 国产亚洲欧美一区二区三区| 亚洲伊人第一页| 欧美日韩一区二区在线观看视频| 国产在线精品自拍| 亚洲欧美国产va在线影院| 欧美日韩亚洲一区二区三区在线| 亚洲国产欧美国产综合一区| 乱码第一页成人| 极品日韩久久| 久久综合久久美利坚合众国| 国产毛片久久| 欧美一区二区在线观看| 国产欧美精品国产国产专区| 亚洲欧美成人| 国产精品高潮呻吟| 亚洲尤物视频在线| 国产精品久久久久久五月尺| 亚洲视频电影在线| 国产精品久久国产三级国电话系列| 日韩视频免费在线| 欧美巨乳在线| 在线视频日韩精品| 国产精品igao视频网网址不卡日韩 | 欧美日韩国产免费观看| 亚洲精选大片| 欧美日韩视频一区二区三区| 一区二区三区四区五区视频| 国产精品白丝av嫩草影院| 性欧美xxxx大乳国产app| 国产日韩在线一区| 欧美.日韩.国产.一区.二区| 一区二区欧美亚洲| 国产手机视频精品| 欧美精品国产一区|