程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 輸入法編程指南

輸入法編程指南

編輯:vc教程

Windows 95輸入法編輯器(IME)

原著:Microsoft

翻譯:TBsoft Software Studio

一、關於Windows 95混合語言IME

在Windows 95中,IME是一個動態鏈接庫(DLL),與Windows 3.1遠東版本IME不同的是,每一個運行的IME相當於混合語言鍵盤布局中的一種。與Windows 3.1 IME相比較,Windows 95混合語言IME提供下列增強功能:

●運行時相當於混合語言環境的一個部件

●為每一個應用程序任務提供多重輸入上下文

●為每一個應用程序線程提供一個活動的IME

●通過應用程序消息循環給應用程序提供信息(消息順序不能改變)

●為無IME支持應用程序和部分IME支持應用程序提供有力的支持

要得到全部的增強功能,應用程序需要支持Windows 95 IME應用程序I/F。

本文檔描述了Windows 95 IME體系結構的應用程序I/F。

1、IME的結構

Windows 95 IME必須提供兩個部件:IME轉換接口和IME用戶接口。IME轉換接口由一組IME模塊引出函數提供,這些函數被IMM(輸入法管理器——譯者注)調用。

IME用戶接口由一組窗口提供,這些窗口接收消息並提供IME的用戶界面。

2、IME支持應用程序(IME感知應用程序——譯者注)

應用程序有下列類型:

●無IME支持應用程序:這種應用程序不控制IME,然而,如果應用程序接受DBCS字符,用戶可以通過IME在應用程序中輸入DBCS字符。

●部分IME支持應用程序:這種應用程序只控制不同的IME上下文,例如打開和關閉IME、寫作窗口等等,但是不重新顯示任何IME用戶界面。

●完全IME支持應用程序:這種應用程序負責管理通過IME顯示給應用程序的任何信息。

在Windows 95中,一個無IME支持應用程序有一個缺省的IME窗口和一個缺省的輸入上下文。

部分IME支持應用程序使用預定義的“IME”類創建自己的IME窗口,可以管理或者不管理自己的輸入上下文。

完全IME支持應用程序自己管理輸入上下文,顯示輸入上下文給出的任何需要的信息,不使用IME窗口。

二、IME用戶界面

IME用戶界面包括IME窗口、用戶界面(UI)窗口以及UI窗口的部件。

1、特征

IME類是實現IME用戶界面部分的預定義全局窗口類。“IME”類與預定義的公共控制窗口類有許多相同的特點,IME窗口實例與靜態控制一樣通過CreateWindowEx函數創建,IME類窗口自己不響應用戶輸入,取而代之的是接收不同類型的控制消息實現全部IME用戶接口。應用程序可以使用IME類創建自己的IME窗口,還可以使用ImmGetDefaultIMEWnd函數獲取缺省IME窗口。創建自己的IME窗口或者使用缺省IME窗口的應用程序被稱為IME支持應用程序,具有以下優點(與對應的Windows3.1應用程序比較):

●包括候選字列表窗口(候選窗口),每一個應用程序可以有自己的用戶界面窗口實例,使得用戶可以在任何輸入過程的中途停止並切換到另一個應用程序。在Windows 3.1日文版本中,用戶切換到另一個應用程序是必須放棄當前輸入過程。

●因為IME用戶界面窗口包括應用程序窗口句柄,IME用戶界面窗口可以為應用程序提供缺省行為。例如當應用程序移動時IME用戶界面窗口自動移動,自動跟隨窗口中的插入符號位置,為每一個應用程序標示模式等等。

即使系統僅僅只提供一個IME類,IME窗口仍然有兩種類型。一種類型是系統為無IME支持應用程序創建的IME窗口,DefWindowProc函數為該窗口處理消息,DefWindowProc函數的IME用戶接口被線程的所有無IME支持窗口共享,在文檔中,這種窗口稱為缺省IME窗口。另一種類型是IME支持應用程序創建的IME窗口,在文檔中,IME支持應用程序創建的IME窗口稱作應用程序IME窗口。

2、缺省和應用程序IME窗口

當線程初始化時系統創建缺省IME窗口,這就是說,線程自動獲取缺省IME窗口。缺省IME窗口為無IME支持應用程序提供IME用戶界面,當IME或者IMM生成一個IME消息(WM_IME_*)時,無IME支持應用程序傳遞該消息到DefWindowProc函數,DefWindowProc函數發送需要的消息到為應用程序提供缺省IME用戶界面的缺省IME窗口。IME支持應用程序當不從IME獲取消息時也可以使用缺省IME窗口,需要時可以使用自身的IME窗口。

3、IME類

IME類是Windows 95遠東版本預定義的窗口類,就像Edit是預定義的窗口類一樣。預定義的IME類實現全部的IME用戶接口,處理所有來自IME和包含IMM函數的應用程序的消息,應用程序使用IME類創建自己的IME窗口。系統IME類不能被被任何IME替換。

窗口過程與IME類通過WM_IME_SELECT消息交互,該消息包括新選中的IME的鍵盤布局,IME類使用鍵盤布局查找到每一個IME定義的類名。使用類名,IME類為當前活動的IME創建IME用戶界面窗口。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved