Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |  |
Я перелопатил MSDN и редактор диалогов в VC - но owner draw у TreeView не нашел 09.02.03 14:59 Число просмотров: 1065
Автор: amirul <Serge> Статус: The Elderman
|
Стиль owner draw (он не только в дельфях так называется - в винапи тоже) есть у Button-а (BS_OWNERDRAW) у Static-а (SS_OWNREDRAW), у кучи других контролов, но у TreeView его нет. В дельфях не смотрел - языками не владею :-))), но если там есть этот стиль, то делфя использует не стандартную comctl32, а расширяет сама.
Можно попытаться просто перехватывать WM_PAINT (WM_NCPAINT) и рисовать там самому, но по мойму отрисовывать TreeView - то еще удовольствие
|
<programming>
|
[Win32] Tree-view control... Нид хелп :) 08.02.03 13:55
Автор: tatar_0x4e Статус: Member
|
Захотелось мне тут дерево сделать (a-la Windows Explorer). Но не простое, а чтобы каждый узел имел вид
- icon0-text-icon1 ... iconN.
|
+ icon0-text-icon1 ... iconN.
и т.д.
---
Ну с нулевой иконой и с текстом все ясно - стандартные фичи. Но вот как нарисовать иконки справа от текста... Тут меня МС обломали :(, их три-вью - монолитное окно, так просто доступ к узлам дерева не получишь (вроде как можно было в Swing...). Вопрос - у кого-нибудь есть идеи, как можно разукрасить узлы дерева, подсунуть туда какой-нибудь битмап в бэкграунд и т.п.? То что в принципе возможно что-то такое сделать я знаю - в Qt QListView можно и дерево сделать и пихмапами его разукрасить, но проблема в том что Trolltech'и могли и сами это дерево реализовать от начала и до конца, с них станется...
Если кто работал с WTL - она позволяет такие фокусы делать? Я понимаю, что больше чем может Win32 API она не сделает, но вдруг там есть какой-то супер-макрос... :)
|
 |
[Win32] Tree-view control может иметь стиль типа OwnerDraw (сорри за дельфийскую терминологию, но я уверен что и API позволит), там можно рисовать как угодно. 08.02.03 15:50
Автор: HandleX <Александр М.> Статус: The Elderman Отредактировано 08.02.03 15:51 Количество правок: 1
|
|
 |  |
Я перелопатил MSDN и редактор диалогов в VC - но owner draw у TreeView не нашел 09.02.03 14:59
Автор: amirul <Serge> Статус: The Elderman
|
Стиль owner draw (он не только в дельфях так называется - в винапи тоже) есть у Button-а (BS_OWNERDRAW) у Static-а (SS_OWNREDRAW), у кучи других контролов, но у TreeView его нет. В дельфях не смотрел - языками не владею :-))), но если там есть этот стиль, то делфя использует не стандартную comctl32, а расширяет сама.
Можно попытаться просто перехватывать WM_PAINT (WM_NCPAINT) и рисовать там самому, но по мойму отрисовывать TreeView - то еще удовольствие
|
 |  |  |
Не могет быть... 10.02.03 05:05
Автор: HandleX <Александр М.> Статус: The Elderman Отредактировано 10.02.03 05:06 Количество правок: 1
|
> Стиль owner draw (он не только в дельфях так называется - в > винапи тоже) есть у Button-а (BS_OWNERDRAW) у Static-а > (SS_OWNREDRAW), у кучи других контролов, но у TreeView его > нет. В дельфях не смотрел - языками не владею :-))), но > если там есть этот стиль, то делфя использует не > стандартную comctl32, а расширяет сама. > > Можно попытаться просто перехватывать WM_PAINT (WM_NCPAINT) > и рисовать там самому, но по мойму отрисовывать TreeView - > то еще удовольствие
Я наверное не так выразился... Это не столь стиль TreeView, сколько любой TreeView шлёт NM_CUSTOMDRAW Notification Message. Вот на него и надо реагировать, там мощная поддержка в плане того, что надо отрисовывать винде самой для элемента TreeView, а что программеру. Прикол что в ссылке MSDN про подробности использования это Message (Using Custom Draw) они ссылаются на пример использования в ListView, т.е. однотипно. Ну, и наконец, Delphi юзает тот же механизм, я заглянул в sources.
|
 |  |  |  |
Thanx... 10.02.03 19:34
Автор: tatar_0x4e Статус: Member
|
> Я наверное не так выразился... Это не столь стиль TreeView, > сколько любой TreeView шлёт NM_CUSTOMDRAW Notification > Message. Вот на него и надо реагировать, там мощная > поддержка в плане того, что надо отрисовывать винде самой > для элемента TreeView, а что программеру. Прикол что в > ссылке MSDN про подробности использования это Message > (Using Custom Draw) они ссылаются на пример использования в > ListView, т.е. однотипно. Ну, и наконец, Delphi юзает тот > же механизм, я заглянул в sources.
Да есть такое. Сейчас пробую прикрутить к своему случаю. Спасибо!
|
 |  |  |  |
Ух ты!!! Бум знать - действительно то что надо :-) 10.02.03 16:23
Автор: amirul <Serge> Статус: The Elderman
|
|
|
|