次の方法で共有


IME サンプル : IME モードの制御方法と IME レベル 3 の実装方法

更新 : 2007 年 11 月

IME サンプルでは、CEdit のサブクラスである CIMEEdit を使用してエディット コントロールを作成します。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 とリンクする必要があります。

0x02zb6d.alert_security(ja-jp,VS.90).gifセキュリティに関するメモ :

このサンプル コードは概念を示す目的で提供されているものです。必ずしも最も安全なコーディング手法に従っているわけではないので、アプリケーションまたは Web サイトでは使用しないでください。Microsoft は、サンプル コードが意図しない目的で使用された場合に、付随的または間接的な損害について責任を負いません。

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

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

    詳細については、「サンプル ファイルの格納場所」を参照してください。

  • 使用できるサンプルの最新バージョンと完全な一覧については、オンラインの Visual Studio 2008 Samples のページを参照してください。

  • サンプルは、コンピュータのハード ディスク上にもあります。既定では、サンプルおよび Readme ファイルは、\Program Files\Visual Studio 9.0\Samples\ の下のフォルダにコピーされます。Visual Studio Express Edition の場合、すべてのサンプルはオンライン上にあります。

サンプルのビルドと実行

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

  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

参照

その他の技術情報

国際化対応のサンプル