エデットボックスのスクロールバーを常に最下段にもっていく

解決


トッシ  2006-08-18 20:03:16  No: 62750

ダイアログボックス上のボタンを押すと、エディットボックスに文字がどんどん改行と共に書き込まれていくというプログラムを作っています。
この際に、改行するという事はエディットボックスに複数行を表示させているのですが、新しい行を追加させると常にスクロールバーがエディットボックスの先頭まで戻ってしまい、もどかしい思いをしています。

私の狙いとしては、新しい行を追加すると逆に常にスクロールバーの位置が最下段にくるようにし、常に最新の情報がエディットボックスに表示されているような状態にしたいのですが、どなたか良い方法をご存じないでしょうか?

プログラムはVC++6.0のAPIで書いております。
よろしくお願いいたします。


Blue  2006-08-18 21:02:15  No: 62751

EM_SETSEL を Send してみてはどうでしょうか?

> エディットボックスに文字がどんどん改行と共に書き込まれていくという
追記ですよね?
> エディットボックスの先頭まで戻ってしまい
ということは、もしかしてすべての文字列を SetWindowText で入れていますか?
追加する文字だけを EM_SETSEL と EM_REPLACESEL で追記したほうがいいかも。


Blue  2006-08-18 22:27:51  No: 62752

>EM_SETSEL を Send してみてはどうでしょうか?
はだめそうでした。

EM_GETLINECOUNT で総行数を取得して、LINESCROLLでスクロールさせる

をすればできそうです。


Blue  2006-08-18 22:28:28  No: 62753

訂正)
> LINESCROLLで
EM_LINESCROLLで


トッシ  2006-08-18 22:55:58  No: 62754

Blueさん

書き込みありがとうございました。
EM_LINESCROLLで無事問題解決しました。
ありがとうございました。


subaru  2006-08-19 01:25:30  No: 62755

SB_BOTTOMを指定してWM_VSCROLLを送ってもたぶん大丈夫。。。


subaru  2006-08-19 01:31:15  No: 62756

>SB_BOTTOMを指定してWM_VSCROLL
↑EM_SETSELとEM_REPLACESELした上でです。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加