CRichEditCtrlのエディタを作成しています.
日本語モードで文字を入力して,未確定の状態の文字を
操作したいと思っています.
未確定の文字を取得するには,ImmGetCompositionString()
を使用すれば,できましたが,
未確定文字を削除したり,また,未確定文字を設定したり
するには,どうすればいいのか教えて下さい.
ImmSetCompositionString()を使えばいいような気がするんですが,
引数のlpComp とlpRead の意味が良く分かりません.
よろしくお願いします.
>引数のlpComp とlpRead の意味が良く分かりません。
と言うことなんですが、HELPで読んでみたがわからないと言うことなんでしょうか?
HELPを読む限りでは変換文字の変更をしたいのであれば、lpCompの方を使えば
いいような気がしますけれど。
HELPをまだ読んでいないようでしたら一読された方がよろしいと思います。
読まれた上での質問でしたらその旨、書いておかれたほうがよろしいかと思います。
私のように勘違いする人もいるでしょうから。
もし、既にコードを書いて試してみたがうまく行かないと言うことであれば、
そこまでかかれた方がよいと思います。
解決したのでお知らせします.
まず,現在テキスト上に未変換状態で残っている
文字列を消すには以下の関数を呼びます.
ImmNotifyIME(hIMC, NI_COMPOSITIONSTR, CPS_CANCEL, 0);
その後,新しく未変換文字を追加するには,以下の関数を呼びます.
ここで,CompBuf に追加する文字を指定しています.
今回,サイズは10にしているので,第四引数は,10 となります.
ImmSetCompositionString( hIMC,SCS_SETSTR,CompBuf, 10 ,NULL, 0 );
お騒がせしました.
