| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > TListView событие OnCustomDrawSubItem |
| Автор: Нитонисе 22.6.2012, 11:41 | ||
| Имеется список TListView в стиле vsReport. Задача - в колонках номер 2 (SubItem = 1) рисовать заданную картинку на канве. Вообще говоря хочется понять как рисовать в любых SubItem'ах. При этом все прочие SubItem'ы должны рисоваться штатно. Попытался использовать событие OnCustomDrawSubitem.
В результате закрашивается красным первая колонка (Caption Item'а) и вертикальные границы между всеми остальными субитемами (полоски) http://www.radikal.ru А если навести курсор на строку, то она становится вот такой http://www.radikal.ru Подскажите как правильно решить мою задачу, а еще лучше если бы дали работающий пример кастомной прорисовки субитема P.S. ОС - Win7, Builder XE. |
| Автор: Нитонисе 22.6.2012, 12:21 | ||
Частично разобрался сам
Теперь закрашивается красным только вторая колонка, а все остальные субитемы рисуются штатно. Правда без кода в блоке else почему шрифт в субитемах жирный (как в скринах первого сообщения), а вот с блоком else - нормальный. Не пойму почему Но вот осталась проблема - при выделении итема или при наведении на него мыши текст закрашивается черным, как на втором скрине первого сообщения :( |
| Автор: Нитонисе 22.6.2012, 14:17 | ||
| Решил вопрос по другому. Ставлю свойство ListView->OwnerDraw = true. Использую событие OnDrawItem, где полностью отрисовываю итем как мне надо:
Получается такой эффект: http://www.radikal.ru Впринципе красиво |