IME自前表示にて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
gomos

IME自前表示にて

#1

投稿記事 by gomos » 4年前

IMEの変換文字を自前で表示しているのですが
ウィンドウメッセージをフックしてWM_IME_COMPOSITIONでImmGetCompositionString(GCS_COMPSTR)等、
WM_IME_NOTIFYのIMN_OPENCANDIDATE、IMN_CHANGECANDIDATEの場合はImmGetCandidateListで
自前で変換文字や変換候補を取得、表示しているのですが
IME関連のメッセージの場合にCallWindowProcをせずにreturn、またはIMEの変換候補ウィンドウを
閉じるAPI関数を呼ぶなどしてIMEの変換候補ウィンドウを表示しない場合に
変換候補を数字キー1~9で確定すると、
どの変換候補ページでも最初のページの1~9番目の文字に確定してしまいます。
IMEの変換候補ウィンドウを表示した場合は表示された変換候補ページの1~9番目の文字になります。

処理的には数字キーで確定するとおそらくWM_IME_COMPOSITIONが来るので
そこでImmGetCompositionString(GCS_COMPSTR)で取得し
ImmGetCompositionString(GCS_COMPCLAUSE)等で文節に分けて表示しています。

解決作があればよろしくお願いします。

“C言語何でも質問掲示板” へ戻る