Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

аля DirectSkin


strong ©   (2002-11-16 14:01:00) 

Кто нибудь пробовал разрабатывать технологию примения скинов для стандартных элементов программ как это сделано в DirectSkin. поделитесь опытом!


Shuric   (2002-11-20 15:30:00) [1]

Зачем такие сложности. Скачай библиотеку с www.almdev.com


Игорь Шевченко   (2002-11-19 16:45:00) [2]

Эта...вот темы в Windows XP тоже изменяют внешний вид приложений одним махом. И никого это не удивляет...

Такую информацию разработчики берут в MSDN, читают описания сообщений, ставят хуки WH_CALLWNDPROC, WH_GETTMESSAGE и меняют...


strong   (2002-11-19 16:36:00) [3]

Но ведь существуют же программы, способные изменять внешний вид окон всех приложений одним махом. WindowsBlinds например. Они то как это делают? Я догадываюсь, что заменяют фуенкции стандартной отрисовки, но какие? Где разработчики берут таккую информацию? Есть ли она у вас?


Игорь Шевченко   (2002-11-19 16:15:00) [4]

SPeller © (19.11.02 16:07)

А которые не отдельными контролами - это вообще не окна, а такая же часть неклиентской области окна, как, например, заголовок или строка меню :-)

С уважением,


SPeller   (2002-11-19 16:07:00) [5]

Да уж, скролбары плохо поддаются контролю над ними, особенно если сделаны не отдельными контролами.


Игорь Шевченко   (2002-11-19 15:20:00) [6]

Нету у полосы прокрутки такого флага. Придется заменять у него оконную процедуру (если это контрол) и обрабатывать сообщение, как минимум WM_PAINT


strong   (2002-11-19 15:04:00) [7]

Да в интернете я уже посмотрел!
И справку по WinAPI тоже глянул. Вроде выходит, что не все control"ы так можно перерисовывать. Например как быть с полосой прокрутки? на нее флага XS_OWNERDRAW нету вроде? По крайней мере я не нашел!


Eugen Honeker   (2002-11-18 19:07:00) [8]

делфи тут ни причем, просто когда создаются control"ы на api
с помощью CreateWindowможно передать такой flag
как BS_OWNERDRAW, LBS_OWNERDRAWитд.
тогда эти control"ы не будут Windows"ом отрисовыватся, а Windows
будет посылать WM_DRAWITEM-messageв message-loop твоей программы. а тут можно, отловив это сообщение самому
отрисовать control.

насщет куска кода, тут тебе придется самому повозится.
в инете и в msdn"е примеров больше чем надо.


strong   (2002-11-18 18:14:00) [9]

>Eugen Honeker
Можно немного поподробнее? Во-первых как вешать? (кусок кода).
Во-вторых: для всех Control такое подойдет? В тертьих: такой спосб работает только в Delphi?


Eugen Honeker   (2002-11-18 13:38:00) [10]

я незнаю что там DirectSkin делает, но на тему
нестандартной отрисовки:
вешай флаг XS_OWNERDRAW (например для "BUTTON" -> BS_OWNERDRAW итд.) и отрисовывай все сам.


strong   (2002-11-18 12:49:00) [11]

И чего все молчат?
Неужели никто не интересовался проблемой нестандартной отрисовки органов уаравления Windows? Конечно с появлением Windows XP тема несколько старовата, но просто интересно разобраться как это сделано!
Где вы МАСТЕРА?!!!


Наверх

Титульная страница Поиск, карта сайта Написать письмо