私はリストをクリアして特定の時間に再投入するCListCtrl(レポートスタイル)を持っています。私はこれを行うときに垂直スクロール位置を維持したいと思います。私はGetScrollPos()してからSetScrollPosをしようとしている()は、それが動作していないと思われるCListCtrl:スクロール位置を維持する方法は?
EnsureVisible()
GetScrollPos()
SetScrollPos()
GetScrollInfo()
GetTopIndex()
Scroll()
:私は有望に見えるカップルの方法がある参照してください。スクロール位置を保存して後で復元する単純な正しい方法は何ですか?
UPDATE
は実際にそれを復元するために、私は(スクロール位置GetScrollPosを保存するために取得することができそうです)、その後SetScrollPos()、しかし、文字通り、スクロールバーの位置を設定しているようだと、実際にスクロールしません私のCListCtrlの項目。
UPDATE 2
スクロール()メソッドは、正しくスクロールバーと内容をスクロールするようです。しかし、引数としてCSizeオブジェクトが必要です。したがって、問題は、CSizeとGetTopIndexまたはGetScrollInfo/Posの出力の間で変換する方法です。
で構成されています。私は、スクロール()を使用してソリューションを好むが、これは仕事をします。 nTopIndexの項目が少ないリストの内容を更新した後に何が起こったらどうしたらいいですか? – User
EnsureVisible(nTopIndex)は効果がないと思います。あなたはリストを下にスクロールダウンして終了します。 –
そして、なぜM $はSetTopIndexメソッドを提供するのに気にしませんでしたか? :-( –