Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.09;
Скачать: CL | DM;

Вниз

Скины   Найти похожие ветки 

 
Fox Mulder   (2003-11-07 06:31) [0]

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


 
wicked ©   (2003-11-07 13:42) [1]

принцип прост:
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 и т. д.


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

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


 
wicked ©   (2003-11-08 20:13) [3]

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


 
wicked ©   (2003-11-08 20:15) [4]

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



Страницы: 1 вся ветка

Текущий архив: 2004.01.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
1-25324
AndrewK
2003-12-22 14:50
2004.01.09
Как в TVirtualStringTree создать структуру?


14-25501
SkyRanger
2003-12-08 04:02
2004.01.09
---|Ветка была без названия|---


1-25298
Евгыш
2003-12-23 10:07
2004.01.09
OPC сервер


6-25492
Anarki
2003-11-09 00:16
2004.01.09
Как сделать так, чтобы при подключении idSMTP программа не висла?


3-25189
loki128
2003-12-10 15:10
2004.01.09
Сохранить recordset