【发布时间】:2011-11-28 02:09:30
【问题描述】:
我有一个 CListCtrl(报告样式),我可以在其中清除列表并在特定时间重新填充它。我想在执行此操作时保持垂直滚动位置。我看到有几种方法看起来很有希望:
EnsureVisible()
GetScrollPos()
SetScrollPos()
GetScrollInfo()
GetTopIndex()
Scroll()
我正在尝试 GetScrollPos(),然后是 SetScrollPos(),但它似乎不起作用。保存滚动位置然后恢复它的简单正确方法是什么?
更新
实际上,我似乎可以保存滚动位置 GetScrollPos() 然后 SetScrollPos() 来恢复它,但它实际上似乎只是设置了滚动条位置,实际上并没有滚动我的 CListCtrl 的项目。
更新 2
Scroll() 方法似乎可以正确滚动滚动条和 内容。然而,它需要一个 CSize 对象作为它的参数。所以问题是如何在 CSize 和 GetTopIndex 或 GetScrollInfo/Pos 的输出之间进行转换。
【问题讨论】: