powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Простой вопрос по TTreeView
11 сообщений из 11, страница 1 из 1
Простой вопрос по TTreeView
    #32419555
Клювик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочу, чтобы мое дерево имело фоновый рисунок. Попытка вставить его через канвас ничего не дала почему-то, а рисунок лежит в TImageList.
...
Рейтинг: 0 / 0
Простой вопрос по TTreeView
    #32419725
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боюсь, дерево не заточено под рисунки в фоне. (может на счёт билдера я и ошибаюсь)
Надо пробовать делать subclass.
То бишь перехватывать функцию обработки окна на WM_PAINT, рисовать картинку, а потом отпралять дальше. Я так делал. Тока не с деревом(а без разницы с чем делать)
...
Рейтинг: 0 / 0
Простой вопрос по TTreeView
    #32419889
_Konst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CEMb писалБоюсь, дерево не заточено под рисунки в фоне. (может на счёт билдера я и ошибаюсь)
Надо пробовать делать subclass.
То бишь перехватывать функцию обработки окна на WM_PAINT, рисовать картинку, а потом отпралять дальше. Я так делал. Тока не с деревом(а без разницы с чем делать)




http://www.codeguru.com/treeview/background_image.shtml
...
Рейтинг: 0 / 0
Простой вопрос по TTreeView
    #32419984
SnowMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На Buildere можно немного покороче:

На OnCustomDraw пишем:

Graphics::TBitmap *Bitmap = new Graphics::TBitmap;
Bitmap->LoadFromFile("c:\\windows\\облака.bmp");
TreeView1->Canvas->Brush->Bitmap = Bitmap;
TreeView1->Canvas->FillRect(ARect);

На OnCollapsed и OnExpanded:

TreeView1->Invalidate();
...
Рейтинг: 0 / 0
Простой вопрос по TTreeView
    #32420047
Фотография DarkCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что значит
TreeView1->Invalidate();
если не сикрет?

...
Рейтинг: 0 / 0
Простой вопрос по TTreeView
    #32420098
SnowMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TreeView1->Invalidate();
Говорит о том, что пора перерисовать.
...
Рейтинг: 0 / 0
Простой вопрос по TTreeView
    #32420126
Клювик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, попробую, как описано.
...
Рейтинг: 0 / 0
Простой вопрос по TTreeView
    #32421743
Клювик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну, типа, получилось. Но:
- мелькает сильно при перерисовке;
- Фон под текстом остается белым.
(Это, кстати, билдер).
Как от этого избавиться?
...
Рейтинг: 0 / 0
Простой вопрос по TTreeView
    #32421866
Snow_man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мелькает сильно при перерисовке

У меня не мелькало. Видимо видеокарта с ускорителем играет роль. Для предотвращения мелькания можно поработать с OnCollapsed и OnExpanded. Вместо TreeView1->Invalidate(); Надо сделать InvalidateRect на область расширения или коллопса.

Фон под текстом остается белым
Надо поиграть с событием OnCustomDrawItem. Слелать там прозрачную кисть.

Сам смогу сесть разбираться только после 18-00 по москве. Если к тому времени не сделаете пишите.
...
Рейтинг: 0 / 0
Простой вопрос по TTreeView
    #32423273
SnowMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В штатной поставке Buildera есть пример:
C:\Programs files\Borland\CBuilder5\Examples\CustomDraw
там дерево рисуется в разных видах, в том числе и поверх рисунка, правда капитально разбираться было некогда.
...
Рейтинг: 0 / 0
Простой вопрос по TTreeView
    #32423479
Клювик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SnowMan, спасибо, посмотрю.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Простой вопрос по TTreeView
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]