エディットボックスのカーソル位置の取得について – プログラミング – Home

エディットボックスのカーソル位置の取得...
 
通知
すべてクリア

[解決済] エディットボックスのカーソル位置の取得について


がお
 がお
(@がお)
ゲスト
結合: 20年前
投稿: 5
Topic starter  

環境 OS:XP VS:.Net2003

エディットボックス上でカーソル位置が行の先頭にあるかどうかを判定したいのです
が、どのように判定したらよろしいでしょうか?
CEditクラス内でそのようなメンバが見当たりませんでしたのでご教授ください。


引用未解決
トピックタグ
tetrapod
 tetrapod
(@tetrapod)
ゲスト
結合: 21年前
投稿: 830
 

複数行でない場合は単純に CEdit::GetSel
複数行の場合は CEdit::LineIndex とあわせ技で


返信引用
がお
 がお
(@がお)
ゲスト
結合: 20年前
投稿: 5
Topic starter  

組み合わせ技で行えました。
ありがとうございました。


返信引用
tetrapod
 tetrapod
(@tetrapod)
ゲスト
結合: 21年前
投稿: 830
 

先のコメントでは書かなかったけど MFC っつことでいいよね?
解決ついでにどうやったかを書いてくれると、後で読む人の参考になるのでいいな

C(Rich)Edit::GetSel(s, e); で選択開始位置と選択終了位置が得られる。
ドラッグして複数文字を選択してない状況、つまり、
カレットというか I カーソルというか、の時には開始==終了となる。

複数行選択許可していない場合には s==0 && e==0 で行頭にカレットがある。

複数行選択許可した場合には t=C(Rich)Edit::LineIndex(-1) で
当該行の先頭文字のインデックスがわかるわけで、となると
s==t && e==t であれば当該行の行頭にカレットが有ると判断できるわけだ

複数行選択許可でない場合は自動的に1行目が選択されることになり、
LineIndex(-1) は 0 を返すので、結局のところ
複数行選択許可かどうかに関係なく s==t && e==t で OK! っつわけだ。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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