Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.11;
Скачать: CL | DM;

Вниз

ListView.OwnerDraw - не меняется высота Item   Найти похожие ветки 

 
simpson ©   (2005-11-15 15:06) [0]

Здравствуйте.

Возникла необходимость заменить стандартную отрисовку ListView со стилем "репорт" на свою. Установил свойство OwnerDraw в True, написал обработчик события OnDrawItem. Обнаружилась одна проблема — высота прямогугольника в котором должен рисоваться item, мягко говоря, не соответствует действительности — она меньше, чем нужно (шрифт у ListView достаточно крупный по сравнению с системным).

При дефолтной отрисовке высота item вычисляется корректно, мне передается черт знает что. Может, кто сталкивался с подобной проблемой?


 
simpson ©   (2005-11-15 18:03) [1]

Проблема решена, мож кому пригодится.

Нужно обрабатывать сообщение WM_MEASUREITEM у окна-владельца листвью.

В общем случае решается подменой оконной процедуры у ListView.Parent.Handle, в подмененной процедуре при обработке WM_MEASUREITEM указывать нужную высоту айтема.

Странно другое -  почему это не делается в самом классе TListVew... Ведь то же самое реализовано для TListBox. Видимо, загадка от разработчиков VCL.



Страницы: 1 вся ветка

Текущий архив: 2005.12.11;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.028 c
3-1130411409
diwww
2005-10-27 15:10
2005.12.11
Получить позицию первой выводимой записи в DBGrid-е


2-1132816955
Андрюша
2005-11-24 10:22
2005.12.11
e в степени ln(x)? Как сделать?


14-1132302421
_Vaitek
2005-11-18 11:27
2005.12.11
Сжатие данных "на лету"


14-1132192872
SPeller
2005-11-17 05:01
2005.12.11
Вторая мировая и роль США в ней


4-1128789954
capkoh
2005-10-08 20:45
2005.12.11
Куда девается сообщение клавиатуры?