私たちのアプリケーションが国際的な入力を適切に処理できるようにしようとしています。テキスト入力とフォント レンダリングは自分たちで処理するので、それぞれの WM_IME_* メッセージを処理するカスタム コードを作成しました。
現在、これはすべて正常に機能しますが、1 つの例外があります。アプリケーションのメイン ウィンドウが開いていると、言語バーでオプションを選択できません。入力言語を日本語または韓国語に設定できますが、入力方法 (ハングルまたはひらがななど) を選択するためのメニューが表示されません。次に、別のウィンドウ (アプリケーション ウィンドウの 1 つ、または標準の「ファイルの保存」ダイアログなど、他のウィンドウ) を開くと、オプションが表示されます。そこに着くと、他のウィンドウを閉じても残ります。IME 入力は、メイン ウィンドウで期待どおりに機能します。ただし、説明したように、最初に別のウィンドウを開いた場合のみです。
では、入力方法のオプションを表示するかどうかを、ウィンドウはどのように決定するのでしょうか? なんらかの理由で、Windows がメイン ウィンドウを Unicode 対応として認識していないようです。どうすれば修正できますか?
提案をお寄せいただきありがとうございます。
ジョナス
編集:私が気づいたもう1つの奇妙なことは、メインウィンドウ(入力方法を変更できない)で、入力言語を変更するとWM_INPUTLANGUAGECHANGEREQUESTメッセージが表示されることです-これをDefaultWindowProcWに渡します。入力方法を変更できるウィンドウの場合、要求が表示されず、WM_INPUTLANGUAGECHANGE メッセージが表示されるだけです (他のウィンドウでは表示されません)。