Share via


日本語入力システムのサンプル:示します IME レベル 3 の IME モードの制御と実装する方法

IME サンプル CIMEEditCEdit のサブクラスを使用して、エディット コントロールを作成します。 CIMEEdit すべての入力文字を処理し、DBCS 文字列を使用して作成します。 サンプルの特徴は、次のとおりです。

  • C/C++ を使用した IME モードの制御方法を示します。 CIMEEdit の初期の IME モードは、入力する言語、形状などに応じて設定できます。 たとえば、韓国語の文字を使用するために、エディット コントロールを初期設定にするには、この例で示すようにコードを追加します。 また、英語だけを使用する場合は、IME を無効にできます。

  • このサンプルでは、IME レベル 3 をソース コードに実装する方法を示します。 東アジアのユーザーにとって、IME レベル 3 はたいへん便利で強力です。 このサンプルを使用して、IME レベル 3 をサポートするカスタム コントロールやウィンドウを作成できます。

  • このサンプルでは、キーボードのレイアウトによって、ANSI から Unicode への変換のためのフォントおよびコード ページが決定されます。このため、フォントやコード ページを変更せずに、東アジアのすべての言語を 4 とおりの IME で使用できます。 これは Windows 2000 の機能であり、IME レベル 3 をサポートするための必要条件ではありません。

  • このサンプルの GetCombinedCharLength 関数は、サロゲート文字だけをサポートします。 文字の組み合わせのサポートが必要な場合は、メソッドにコードを追加してください。

IME 関数を使用するには、プログラムに IMM.H をインクルードし、IMM32.LIB とリンクする必要があります。

セキュリティに関するメモセキュリティに関するメモ

このサンプル コードは概念を示すためのものであり、その概念に関連するコードのみを示しています。特定の環境について必ずしもセキュリティ要件を満たしていませんので、そのまま使用しないでください。セキュリティおよびエラー処理コードを追加して、プロジェクトをより安全かつ堅牢にすることをお勧めします。これらのサンプル コードは、現状有姿のままで提供されるものであり、一切保証されていません。

サンプルとそのインストール手順を取得するには

Visual Studio のサンプルにアクセスするには

  • [ヘルプ] メニューの [サンプル] をクリックします。

    既定では、これらのサンプルは drive:\Program Files\Microsoft Visual Studio 10.0\Samples\ にインストールされています。

  • このサンプルの最新版および他のサンプルの一覧については、MSDN Web サイト上で Visual Studio サンプル 」を参照してください。

サンプルのビルドと実行

このサンプルをビルドして実行するには

  1. IME.sln ソリューション ファイルを開きます。

  2. [ビルド] メニューの [ビルド] をクリックします。

  3. メニューの [デバッグ、 デバッグなしで開始] をクリックします。

サンプルを実行し、次の機能をテストします。

IME モードの制御

  • チェック ボックスで IME モードを変更できます。 チェック ボックスでオプションを変更すると、IME ウィンドウの状態が変化します。

  • IME ウィンドウで IME モードを変更できます。 IME ウィンドウでオプションを変更すると、サンプルのチェック ボックスが変化します。

  • IME の有効と無効を切り替えることができます。

IME レベル 3 の実装

  • 複数の 2 バイト文字を入力して、文字列の複合方法を確認します。

  • Windows 2000 に適切なフォントが存在する場合は、サロゲート文字を確認できます。

クラスとキーワード

このサンプルでは、次の各クラスを使用します。

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

参照

その他の技術情報

国際化対応のサンプル