リストビューコントロールのスクロール – プログラミング – Home

リストビューコントロールのスクロール
 
通知
すべてクリア

リストビューコントロールのスクロール


むーん
 むーん
(@むーん)
ゲスト
結合: 20年前
投稿: 2
Topic starter  

リストビューコントロールを使ってます。あるリストの内容が変更された場合に、
EnsureVisible()で表示させているのですが、枠内にあるのにも関わらず
必ず最下行に持ってかれてしまいます。

1 AAAAA
=======================
2 BBBBB
3 CCCCC
4 DDDDD←ここにカーソルがある状態でEnsureVisible()すると
5 EEEEE
=======================
6 FFFFF

↓こうなる
=======================
1 AAAAA
2 BBBBB
3 CCCCC
4 DDDDD←選択状態になる。
=======================
5 EEEEE
6 FFFFF

MSDNを見ると・・・
>少なくとも一部が可視になるようにします。必要に応じてリスト ビュー コントロールは
>スクロールされます。引数 bPartialOK が 0 以外でアイテムの一部だけが可視になって
>いるときは、スクロールされません。

とありますが、この「一部」と言うのは何を指しているのでしょうか?
単純に画面上にあれば「可視」と言うのではと思うのですが。
ソースは、「m_ListScn.EnsureVisible(No - 1, TRUE);」としています。
VC6.0MFCを使っております。宜しくお願いします。


引用解決済
トピックタグ
RAPT
 RAPT
(@RAPT)
ゲスト
結合: 23年前
投稿: 310
 

> この「一部」と言うのは何を指しているのでしょうか?
例えば、DDDDD の上半分、とか。

> m_ListScn.EnsureVisible(No - 1, TRUE);
No とは?
DDDDD のリストビューアイテムインデックスは本当に No - 1 と合致しますか?


返信引用
むーん
 むーん
(@むーん)
ゲスト
結合: 20年前
投稿: 2
Topic starter  

お返事遅くてすみません。

>No とは?
>DDDDD のリストビューアイテムインデックスは本当に No - 1 と合致しますか?

↓こういうことです。説明足らずですみません。
No Data
=======================
1 AAAAA
2 BBBBB
3 CCCCC
4 DDDDD←選択状態になる。
=======================
5 EEEEE

インデックスはあってます。


返信引用
RAPT
 RAPT
(@RAPT)
ゲスト
結合: 23年前
投稿: 310
 

いや、だから、Noの値はどのタイミングでどのようにして取得していますか?
ってことです。そのリストコントロールで、ソートありの場合、Insert時に
返ってくるインデックスと、ソートされて表示されたときに見える実際の
インデックスとの値が異なる場合があるのですが、そこは大丈夫でしょうか。

個人的には、結局、見えているのだから、別に拘らなくてもいいのでは
ないかと思うのですが、GetTopIndex()とGetCountPerPage()で計算される、
表示されているはずのアイテムインデックスであれば、EnsureVisible()を
行なわない、といった代替策も考えられますね。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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