информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяЗа кого нас держат?Все любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
Не могет быть... 10.02.03 05:05  Число просмотров: 1051
Автор: 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.
<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
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach