IME 範例:示範如何控制 IME 模式和實作 IME 層級 3
更新:2007 年 11 月
本 IME 範例使用 CEdit 的子類別 (Subclass) CIMEEdit 來建立編輯控制項。CIMEEdit 可處理所有的輸入字元,並撰寫 DBCS (雙位元組字元集) 字串。本範例具有下列功能:
顯示如何使用 C/C++ 來控制 IME 模式。您可以設定 CIMEEdit 的初始 IME 模式如輸入語言、形狀等等。如果您希望編輯控制項一開始便設定為韓文字元,您可以像本範例一樣加入程式碼。同樣的,如果您只要英文,則可以停用 IME。
顯示如何在您的原始程式碼內實作 IME 層級 3。IME 層級 3 對於東亞的使用者來說更為方便且功能更為強大。您可以使用本範例建立能夠支援 IME 層級 3 的自訂控制項或視窗。
本範例透過鍵盤配置決定 Ansi-Unicode 轉換中使用的字型和字碼頁 (Code Page),讓您不需變更字型或字碼頁,即可試用屬於所有東亞語言的四種不同 IME。這是 Windows 2000 的功能,對於 IME 層級 3 支援而言,並非必要項。
本範例中的 GetCombinedCharLength 函式僅支援 Surrogate 字元。如果您需要支援合併的字元,請將您的程式碼加入至方法中。
若要使用 IME 功能,您的程式必須包含 IMM.H,並與 IMM32.LIB 連結。
安全性注意事項: |
---|
這個程式碼範例僅供概念說明之用,同時因為範例中的程式碼撰寫並沒有周全的顧及所有安全性問題,所以本範例不適用於實際執行的應用程式或網站中。如果使用者擅自將範例程式碼用於其他意圖而導致連帶事件或重大損害時,Microsoft 將不承擔任何責任。 |
若要取得安裝這些程式碼的範例和指示:
按一下 Visual Studio [說明] 功能表上的 [範例]。
如需詳細資訊,請參閱尋找範例檔案。
Visual Studio 2008 範例網頁 中提供最新版本的範例完整清單。
您也可以在電腦硬碟中找到範例。根據預設,範例和一個讀我檔案會複製到 \Program Files\Visual Studio 9.0\Samples\ 底下的資料夾中。Visual Studio Express 版本的所有範例都在網路上。
建置和執行範例
若要建置和執行這個範例
開啟方案 IME.sln。
從 [建置] 功能表中,按一下 [建置]。
從 [偵錯]功能表中,按一下 [啟動但不偵錯]。
執行範例,並測試下列功能。
控制 IME 模式
您可以使用核取方塊來變更 IME 模式。如果您使用核取方塊來變更選項,IME 視窗的狀態將會改變。
您可以使用 IME 視窗來變更 IME 模式。如果您使用 IME 視窗來變更選項,範例中的核取方塊將會改變。
您可以啟用或停用 IME。
實作 IME 層級 3
如果您輸入雙位元組的字元,您將看到合成字串的方式。
如果您在 Windows 2000 上擁有正確的字型,就可以看到 Surrogate 字元。
類別和關鍵字
本範例為您示範下列類別:
CEdit
本範例會使用下列關鍵字:
CBitmap::OnPaint; CEdit::OnChar; CEdit::OnSetFocus; CEdit::OnKillFocus; CEdit::OnKeyDown; CEdit::WindowProc; ImmGetContext; ImmReleaseContext; ImmGetConversionStatus; ImmSetConversionStatus; ImmGetOpenStatus; ImmSetOpenStatus; ImmAssociateContext; ImmNotifyIME; ImmGetCompositionString; ImmGetProperty; ImmSetCandidateWIndow; ImmSetCompositionWIndow