У меня есть CListCtrl
, который содержит около 100 000 записей. Пользователю предоставляется окно поиска для поиска среди этих записей. Найдя совпадение, я установил это как выделение и прокручиваю его, используя EnsureVisible
.Как сделать плавную анимацию прокрутки?
Этот прокрутка происходит мгновенно. Я хотел попробовать создать анимацию, похожую на ones demoed here (особенно анимация «Go Top - Easing 2»).
Я думаю, для основной анимации,
- Получить текущий выбор.
- Получить целевой выбор.
- Вычислить разницу.
- Получите высоту пикселя одного элемента.
- Mutiply результатов шага 3 и 4.
Scroll
по приращению 1 (или какому-либо другое более оптимального значения) с задержкой до приращения = результата шага 5.
Я попытался это и я невероятно смутился. Во-первых, мой алгоритм в порядке? Во-вторых, есть ли другой, лучший способ достичь этого (желательно аналогично анимации 2 в link above)?
На самом деле, мой алгоритм не работал вообще, ха-ха! Но да. Я предполагаю, что это приближает меня к тому, что я хотел. Я попробую это и вернусь. Спасибо за ваш ответ! –