Текущий архив: 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.44 MB
Время: 0.036 c