Определить видимость айтема ListView
От: Аноним  
Дата: 15.01.11 14:23
Оценка:
Требуется определить, находится ли указаный айтем в видимой области. Для Виста+ есть ListView_IsItemVisible, а как это правильно сделать в ХР?
Re: Определить видимость айтема ListView
От: CEMb  
Дата: 15.01.11 14:51
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Требуется определить, находится ли указаный айтем в видимой области. Для Виста+ есть ListView_IsItemVisible, а как это правильно сделать в ХР?


Можно попробовать через LVM_FINDITEM с флагом LVFI_NEARESTXY. Найти два итема, верхний левый и нижний правый. Все кто между ними — видимые. Сам не делал, просто идея такая.

А вообще ещё вроде было какое-то сообщение, получить первый видимый итем.
Re[2]: Определить видимость айтема ListView
От: Аноним  
Дата: 15.01.11 14:56
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>Здравствуйте, Аноним, Вы писали:


А>>Требуется определить, находится ли указаный айтем в видимой области. Для Виста+ есть ListView_IsItemVisible, а как это правильно сделать в ХР?


CEM>Можно попробовать через LVM_FINDITEM с флагом LVFI_NEARESTXY. Найти два итема, верхний левый и нижний правый. Все кто между ними — видимые. Сам не делал, просто идея такая.


У меня стиль, LV_VIEW_DETAILS — LVFI_NEARESTXY для него не поддерживается.

CEM>А вообще ещё вроде было какое-то сообщение, получить первый видимый итем.


ListView_GetTopIndex. Вот еслиб было еще сообщение для получения последнего
Re: Определить видимость айтема ListView
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 15.01.11 15:08
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Требуется определить, находится ли указаный айтем в видимой области. Для Виста+ есть ListView_IsItemVisible, а как это правильно сделать в ХР?


На правах идеи: LVM_GETITEMPOSITION + LVM_GETITEMRECT + GetWindowRect()/GetClientRect() скомбинировать не выйдет?
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re: Определить видимость айтема ListView
От: MegaVoltik  
Дата: 15.01.11 22:25
Оценка:
А>Требуется определить, находится ли указаный айтем в видимой области. Для Виста+ есть ListView_IsItemVisible, а как это правильно сделать в ХР?

ListView_GetTopIndex
ListView_GetCountPerPage
Чем больше нас, тем меньше их...
Re[2]: Определить видимость айтема ListView
От: Аноним  
Дата: 16.01.11 01:46
Оценка:
Здравствуйте, MegaVoltik, Вы писали:

А>>Требуется определить, находится ли указаный айтем в видимой области. Для Виста+ есть ListView_IsItemVisible, а как это правильно сделать в ХР?


MV>ListView_GetTopIndex

MV>ListView_GetCountPerPage

В режиме группировки, GetTopIndex всегда 0, а GetCountPerPage не учитывает наличие заголовков групп в видимой области.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.