информационная безопасность
без паники и всерьез
 подробно о проекте
Атака на InternetЗа кого нас держат?Все любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Критическая уязвимость UEFI позволяет... 
 Японский хостинг попросил клиентов... 
 Компрометация eMudhra вынудила... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Не могет быть... 10.02.03 05:05  Число просмотров: 1230
Автор: 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





Рейтинг@Mail.ru


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