リストビューの表示されている範囲を取得するには

解決


ども  2006-01-31 18:54:13  No: 60620  IP: 192.*.*.*

WinXP  .NET  MFCです。

リストビューで、件数が多くてスクロールバーが出ている場合に、表示されている範囲を取得する方法がわかりません。

表示されている件数は取得できるので、最後の行番号か、最初の行番号がわかればいいのですが。

よろしくお願いいたします。

編集 削除
Toshi  2006-01-31 19:07:16  No: 60621  IP: 192.*.*.*

GetTopIndex() では?

編集 削除
ども  2006-01-31 19:28:03  No: 60622  IP: 192.*.*.*

すみません。
MSDNで見つけたのですが、最初の行を取得できないのです。

たとえば、リストの5行目を最上位に表示させておいて、

m_list1.SetFocus();
int n = m_list1.GetTopIndex();

としても、nには0が入ってしまいます。

なにか、思い違いしていますでしょうか。

編集 削除
Toshi  2006-01-31 19:41:13  No: 60623  IP: 192.*.*.*

CListView使ってリスト表示させて
ボタンを用意&クリックハンドラにて GetTopIndex()で値を取って CStaticエリアに表示させた所、問題なく動いてます。
(特にセットフォーカスとかやってません。)
同じ事を試してみてもダメですか?

編集 削除
ども  2006-01-31 19:51:16  No: 60624  IP: 192.*.*.*

ありがとうございました。

成功しました。

今まで、置いた場所が悪かったみたいです。

たいへん失礼しました。

編集 削除
ども  2006-01-31 20:41:27  No: 60625  IP: 192.*.*.*

重ねてすみません。

「解決」にチェックを入れるのを忘れました。

編集 削除