リストビューの最後の行を選択すると上にスクロール

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

リストビューの最後の行を選択すると上にスクロール

#1

投稿記事 by addK » 9年前

リストビューの最後の行を選択すると上に1行自動でスクロールしますよね、
このイベントってつかまえられませんでしょうか?
なにをしたいかですが、
自分の閲覧ソフトで現在選択行を上から下まで自動で表示させています、その結果として、最初以外は常時スクロールが発生してしまい見ずらくなっています、これを改善するために選択行が一番下に来たら、1行のスクロールするかわりに選択行をビューの最初の行に表示すれば良いとおもいますが、このためには最後の行にきたことを検出しないとできません、で、リストビューの最後の行にあることのイベントってつかまえられませんでしょうか?

とけい

Re: リストビューの最後の行を選択すると上にスクロール

#2

投稿記事 by とけい » 9年前

素人意見で恐縮です。
自動表示時中、初回のスクロールがあった時に処理してやれば良いのではないでしょうか。
スクロールの検出ならググれば色々出てきそうです。
または、リストに表示できる個数をビューのサイズから求めておいて、
選択行(n行目)がその個数で割り切れたら処理するとか。。。
見当違いであればご容赦願いますm(_ _)m。

addK

Re: リストビューの最後の行を選択すると上にスクロール

#3

投稿記事 by addK » 9年前

とけいさん
貴重なアドバイスありがとうございます、幅の計算とか盛り込むのが面倒で、スクロールイベントの検出もままならず、なにかビューの表示方法のオプションとかないか?とかそんな表示方法の移植が簡単にできるようになっているかも?とか考えたりしまして、なっていないでしょうねー。最下行でイベント発生LVN_~とかないのでしょうか?

addK

Re: リストビューの最後の行を選択すると上にスクロール

#4

投稿記事 by addK » 9年前

//表示されてる先頭の行
int nTop=SendMessage(p_lf->hlist, LVM_GETTOPINDEX, 0, 0 );
//表示されてる行数
int nPage=SendMessage(p_lf->hlist, LVM_GETCOUNTPERPAGE, 0, 0 );
でやれば何とかできそうです、これで考えてみます、

閉鎖

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