CListCtrl: Как сохранить позицию прокрутки?

У меня есть CListCtrl (стиль отчета), где я очищаю список и заполняю его в определенное время. Я хотел бы сохранить положение вертикальной прокрутки при этом. Я вижу, что есть пара методов, которые выглядят многообещающими:

EnsureVisible()
GetScrollPos()
SetScrollPos()
GetScrollInfo()
GetTopIndex()
Scroll()

Я пытаюсь GetScrollPos (), а затем SetScrollPos (), но он не работает. Каков простой правильный способ сохранить позицию прокрутки, а затем восстановить ее?

ОБНОВИТЬ

На самом деле кажется, что я могу сохранить позицию прокрутки GetScrollPos (), а затем SetScrollPos (), чтобы восстановить ее, однако буквально кажется, что она просто устанавливает положение полосы прокрутки и фактически не прокручивает элементы моего CListCtrl.

ОБНОВЛЕНИЕ 2

Метод Scroll (), кажется, правильно прокручивает полосы прокруткиа также содержимое. Однако он принимает объект CSize в качестве аргумента. Таким образом, вопрос заключается в том, как выполнить перевод между CSize и выводом либо GetTopIndex, либо GetScrollInfo / Pos.

Ответы на вопрос(1)

Ваш ответ на вопрос