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

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

Скины


Fox Mulder ©   (2003-11-07 06:31:00) 

Я делаю программуб с поддержкой скинов. Но как сделать скин для полосы прокрутки,ScrollBar ?


wicked   (2003-11-08 20:15:00) [1]

ЗЫ отправной точкой в разбираниях была CoolSB - маленькая библиотечка на си... поищи, там много полезного...
и не слишком верь автору, когда он пишет об ограничениях.... ;)


wicked   (2003-11-08 20:13:00) [2]

извини, но это слишком много писанины (я ленивый ;)) - у меня заняло около 2 месяцев, чтобы заставить все более-менее работать...
исходник тоже не могу пока дать - по многим причинам...
а направление я указал...


Fox Mulder   (2003-11-08 06:09:00) [3]

У меня недостаточно знаний чтобы это написать. Напишите подробнее, заранее благодарен.


wicked   (2003-11-07 13:42:00) [4]

принцип прост:
1. перехватить WindowProc
2. по приходу WM_NCCALCSIZE обманываем виндовс и диктуем ему форму клиентской части - наши ScrollBar"ы могут быть любого размера
3. по приходу WM_PAINT нужно:
а. определить где находятся полосы прокрутки и сделать им ValidateRect
б. отдать его контролу
в. нарисовать свои полосы
4. по приходу WM_NCPAINT нужно:
а. сформировать свой update-region и "выкусить" из него части, которые мы рисуем сами
б. отдать сообщение контролу
в. нарисовать свои полосы

соответственно нужно еще обрабатывать такие сообщения, как
1. сообщения скроллов - WM_HSCROLL, WM_VSCROLL
2. неклиентские сообщения - WM_NCHITTEST, WM_NCMOUSEMOVE, WM_NCLBUTTONDOWN и т. д.


Наверх

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