"AND" "OR"
Главная Информер Журнал Форум

Как отобразить определённую часть списка CListCtrl

Вопрос:
Я использую CListCtrl для отображения большого объёма данных. Необходимо, чтобы программа отображала различные части списка, но в MSDN ничего не сказано о том, как установить верхний видимый элемент. Я пробовал использовать CListCtrl::EnsureVisible(), но это не совсем то, что мне нужно.

Ответ:
Для этого можно воспользоваться методом Scroll() в CListCtrl:
1. Получаем верхний элемент
2. Находим высоту строки (при помощи GetItemRect() для первого элемента) - надеюсь, что ваш контрол НЕ owner-drawn с различными размерами строк)
3. Вычисляем расстояние скроллирования по оси Y
4. Скроллируем...