IME制御 – プログラミング – Home

通知
すべてクリア

[解決済] IME制御


リムファクシ
 リムファクシ
(@リムファクシ)
ゲスト
結合: 21年前
投稿: 15
Topic starter  

テキストエディタを作成しています。
ダイアログ上にエディットコントロールとピクチャコントロールがあり、
エディットコントロール上で変換中の文字列を取得し、ピクチャコントロール上へ
描画するところまでは出来ました。(WM_IME_COMPOSITIONをキャッチ)
最終的には、ピクチャコントロールだけの状態にしたいのですが、
IMEがエディットコントロールにフォーカスが無いと起動してくれません・・・
ImmSetOpenStatus()でIMEオープンを試みましたが駄目でした。
ピクチャコントロールでIMEを制御出来るようにするには、
どうしたら良いでしょうか?
宜しくお願いします。


引用未解決
トピックタグ
Gak
 Gak
(@Gak)
ゲスト
結合: 22年前
投稿: 132
 

ImmGetContext()
ImmSetCompositionWindow()
ImmSetCompositionFont()
ImmReleaseContext()

関係あるのはこの辺かな


返信引用
リムファクシ
 リムファクシ
(@リムファクシ)
ゲスト
結合: 21年前
投稿: 15
Topic starter  

ご回答ありがとうございます。
おかげで、ImmSetCompositionWindowにて未確定文字の表示位置は設定出来るように
なりました。
ここで、新たな問題が出てきてしまいました・・・
未確定文字は自前で描画しているので、IMEの未確定文字の表示が邪魔になってしまいま
す。先程のAPIで画面の外に追いやっても良いのですが、IMEの変換候補リストも
画面端に表示されてしまうので、出来ればIMEの未確定文字を非表示にしたいのです。
ImmSetCompositionFontで極小フォントを指定してみましたが、ゴマ粒の様に表示され、
完全に消し去る事が出来ませんでした。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1730&forum=7
さんと同じ悩みなのですが、解決出来ません・・・

お知恵をお貸し下さい


返信引用
aetos
(@aetos)
Noble Member
結合: 6年前
投稿: 1480
 

こんなの参考になりますか?
http://www.honet.ne.jp/~tri/program/noime.html


返信引用
リムファクシ
 リムファクシ
(@リムファクシ)
ゲスト
結合: 21年前
投稿: 15
Topic starter  

ありがとうございました。
親のダイアログクラスでメッセージを処理していたのが原因で、
うまく行かなかったみたいです。
自作のクラスにてサブクラス化して、そのクラス内でメッセージ処理したところ、
シャノンさんの方法で解決致しました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました