【发布时间】:2013-04-19 14:47:51
【问题描述】:
我有一个CListCtrl,它有大约 100,000 多个条目。向用户呈现一个搜索框以在这些条目中进行搜索。在找到匹配项时,我将其设置为选择并使用 EnsureVisible 滚动到它。
这个滚动是瞬间发生的。我想尝试编写一个类似于ones demoed here 的动画(尤其是“Go Top - Easing 2”动画)。
我在想,对于一个基本的动画,
- 获取当前选择。
- 获取目标选择。
- 计算差异。
- 获取一项的像素高度。
- 将第 3 步和第 4 步的结果相乘。
-
Scroll增量为 1(或其他更优值),并延迟直到增量 = 步骤 5 的结果。
我试过这个,我非常困惑。首先,我的算法好吗?其次,是否有另一种更好的方法来实现这一点(最好类似于link above中的动画2)?
【问题讨论】:
标签: c++ animation mfc scroll clistctrl