テキストエディタを作成しています。
ダイアログ上にエディットコントロールとピクチャコントロールがあり、
エディットコントロール上で変換中の文字列を取得し、ピクチャコントロール上へ
描画するところまでは出来ました。(WM_IME_COMPOSITIONをキャッチ)
最終的には、ピクチャコントロールだけの状態にしたいのですが、
IMEがエディットコントロールにフォーカスが無いと起動してくれません・・・
ImmSetOpenStatus()でIMEオープンを試みましたが駄目でした。
ピクチャコントロールでIMEを制御出来るようにするには、
どうしたら良いでしょうか?
宜しくお願いします。
ImmGetContext()
ImmSetCompositionWindow()
ImmSetCompositionFont()
ImmReleaseContext()
関係あるのはこの辺かな
ご回答ありがとうございます。
おかげで、ImmSetCompositionWindowにて未確定文字の表示位置は設定出来るように
なりました。
ここで、新たな問題が出てきてしまいました・・・
未確定文字は自前で描画しているので、IMEの未確定文字の表示が邪魔になってしまいま
す。先程のAPIで画面の外に追いやっても良いのですが、IMEの変換候補リストも
画面端に表示されてしまうので、出来ればIMEの未確定文字を非表示にしたいのです。
ImmSetCompositionFontで極小フォントを指定してみましたが、ゴマ粒の様に表示され、
完全に消し去る事が出来ませんでした。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1730&forum=7
さんと同じ悩みなのですが、解決出来ません・・・
お知恵をお貸し下さい
ありがとうございました。
親のダイアログクラスでメッセージを処理していたのが原因で、
うまく行かなかったみたいです。
自作のクラスにてサブクラス化して、そのクラス内でメッセージ処理したところ、
シャノンさんの方法で解決致しました。