CListCtrl: como manter a posição de rolage
Tenho um CListCtrl (estilo de relatório) em que limpo a lista e a preencho novamente em determinados momentos. Eu gostaria de manter a posição de rolagem vertical ao fazer isso. Vejo que existem alguns métodos que parecem promissores:
EnsureVisible()
GetScrollPos()
SetScrollPos()
GetScrollInfo()
GetTopIndex()
Scroll()
Estou tentando GetScrollPos () e SetScrollPos (), mas não parece estar funcionando. Qual é a maneira correta e simples de salvar uma posição de rolagem e depois restaurá-la?
ATUALIZA
Na verdade, parece que posso salvar a posição de rolagem GetScrollPos () e SetScrollPos () para restaurá-la, no entanto, literalmente, apenas parece definir a posição da barra de rolagem e, na verdade, não rola os itens do meu CListCtrl.
UPDATE 2
O método Scroll () parece rolar corretamente as barras de rolagem o conteúdo. No entanto, é preciso um objeto CSize como argumento. Portanto, a questão seria como traduzir entre o CSize e a saída de GetTopIndex ou GetScrollInfo / Pos.