リストビューの最後の行を選択すると上に1行自動でスクロールしますよね、
このイベントってつかまえられませんでしょうか?
なにをしたいかですが、
自分の閲覧ソフトで現在選択行を上から下まで自動で表示させています、その結果として、最初以外は常時スクロールが発生してしまい見ずらくなっています、これを改善するために選択行が一番下に来たら、1行のスクロールするかわりに選択行をビューの最初の行に表示すれば良いとおもいますが、このためには最後の行にきたことを検出しないとできません、で、リストビューの最後の行にあることのイベントってつかまえられませんでしょうか?
リストビューの最後の行を選択すると上にスクロール
Re: リストビューの最後の行を選択すると上にスクロール
素人意見で恐縮です。
自動表示時中、初回のスクロールがあった時に処理してやれば良いのではないでしょうか。
スクロールの検出ならググれば色々出てきそうです。
または、リストに表示できる個数をビューのサイズから求めておいて、
選択行(n行目)がその個数で割り切れたら処理するとか。。。
見当違いであればご容赦願いますm(_ _)m。
自動表示時中、初回のスクロールがあった時に処理してやれば良いのではないでしょうか。
スクロールの検出ならググれば色々出てきそうです。
または、リストに表示できる個数をビューのサイズから求めておいて、
選択行(n行目)がその個数で割り切れたら処理するとか。。。
見当違いであればご容赦願いますm(_ _)m。
Re: リストビューの最後の行を選択すると上にスクロール
とけいさん
貴重なアドバイスありがとうございます、幅の計算とか盛り込むのが面倒で、スクロールイベントの検出もままならず、なにかビューの表示方法のオプションとかないか?とかそんな表示方法の移植が簡単にできるようになっているかも?とか考えたりしまして、なっていないでしょうねー。最下行でイベント発生LVN_~とかないのでしょうか?
貴重なアドバイスありがとうございます、幅の計算とか盛り込むのが面倒で、スクロールイベントの検出もままならず、なにかビューの表示方法のオプションとかないか?とかそんな表示方法の移植が簡単にできるようになっているかも?とか考えたりしまして、なっていないでしょうねー。最下行でイベント発生LVN_~とかないのでしょうか?
Re: リストビューの最後の行を選択すると上にスクロール
//表示されてる先頭の行
int nTop=SendMessage(p_lf->hlist, LVM_GETTOPINDEX, 0, 0 );
//表示されてる行数
int nPage=SendMessage(p_lf->hlist, LVM_GETCOUNTPERPAGE, 0, 0 );
でやれば何とかできそうです、これで考えてみます、
int nTop=SendMessage(p_lf->hlist, LVM_GETTOPINDEX, 0, 0 );
//表示されてる行数
int nPage=SendMessage(p_lf->hlist, LVM_GETCOUNTPERPAGE, 0, 0 );
でやれば何とかできそうです、これで考えてみます、