информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаСтрашный баг в WindowsАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 ФБР нашла русский след в атаках... 
 Массовый взлом SharePoint 
 Microsoft Authenticator прекращает... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





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