VS2005 VC++ Win32で
テキストボックス(エディットコントロール?)
とスクロールバーの連動をさせようとしています。
ほぼすべての連動ができたのですが、
あと1つだけできません;;
「カーソルが右へ動いて、
テキストが右へスクロールしたとき、
それに合わせてスクロールバーのつまみを移動させる」です。
おそらく、テキストボックスのカーソル位置(何桁目か)が
取得できれば実現できると思ったのでこのようなタイトルにしました。
なにか良い方法をご存知の方いらっしゃいませんでしょうか?
試してないので、うまくいかなかったらゴメンナサイ。
1. エディットボックスにフォーカスがあることを確認する。
2. GetCaretPosで、カーソルの位置を取得する(入力カーソルは、正しくは「キャレット」といいます)。
3. EM_CHARFROMPOSで、xy座標から文字の位置を取得する。
でどうでしょう?
レスありがとうございます。
「キャレット」と呼ぶんですか。勉強になります!
>>1. エディットボックスにフォーカスがあることを確認する。
>>2. GetCaretPosで、カーソルの位置を取得する(入力カーソルは、正しく>>は「キャレット」といいます)。
>>3. EM_CHARFROMPOSで、xy座標から文字の位置を取得する。
上記の方法を試してみましたが、
EM_CHARFROMPOSで取得できるのは
行
先頭文字からキャレットまでのバイト数
のようでした。
これではキャレットの行の何桁目にいるのかはわからないようです;;
でもこれと何かを組み合わせたらできるのかもしれませんね!
引き続き調査いたします。
ツイート | ![]() |