Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Фоновый рисунок в TListBox

15K
20 февраля 2006 года
Shurup
6 / / 19.02.2006
Нужно создать новый компонент (модифицировать стандартный ЛистБокс, вставив ему фоновую картинку).
При этом Итемы рисуются вручную. Интересует, какое событие стандартного ListBox-а надо перехватить перед рисованием фона. Желательно, помочь кодом, но и теорию приму с удовольствием.
5
21 февраля 2006 года
hardcase
4.5K / / 09.08.2005
Цитата:
Originally posted by Shurup
Нужно создать новый компонент (модифицировать стандартный ЛистБокс, вставив ему фоновую картинку).
При этом Итемы рисуются вручную. Интересует, какое событие стандартного ListBox-а надо перехватить перед рисованием фона. Желательно, помочь кодом, но и теорию приму с удовольствием.


Свойство ListBox'а ставишь в lbOwnerDrawVariable и событие OnDrawItem будет вызываться каждый раз при прорисовке i-го элемента.
В этом событии просто рисуешь кусок картинки, а поверх него - текст, сответственно CopyRect метод канвы и DrawText Api функция.

15K
21 февраля 2006 года
Shurup
6 / / 19.02.2006
Цитата:
Originally posted by hardcase
Свойство ListBox'а ставишь в lbOwnerDrawVariable и событие OnDrawItem будет вызываться каждый раз при прорисовке i-го элемента.
В этом событии просто рисуешь кусок картинки, а поверх него - текст, сответственно CopyRect метод канвы и DrawText Api функция.


Именно так и делаю. Проблема в таком случае - фоновое изображение рисуется только на ттом участке компонента, где есть итемы, а надо чтоб на всем компоненте.
Пробовал отлавливать сообщение WM_PAINT, но тогда иногда затираются item-ы.
Все-равно, спасибо!

5
21 февраля 2006 года
hardcase
4.5K / / 09.08.2005
Цитата:
Originally posted by Shurup
Именно так и делаю. Проблема в таком случае - фоновое изображение рисуется только на ттом участке компонента, где есть итемы, а надо чтоб на всем компоненте.
Пробовал отлавливать сообщение WM_PAINT, но тогда иногда затираются item-ы.
Все-равно, спасибо!

Можно, конечно, фиксировать, что нарисовано, а потом недостающее дорисовать, но, думаю лучше будет если на WM_PAINT отрисовать всю фоновую картинку, и передать дальше - на отрисовку элементов.

15K
22 февраля 2006 года
Shurup
6 / / 19.02.2006
Цитата:
Originally posted by hardcase
... и передать дальше - на отрисовку элементов.


А как это собственно сделать?

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог