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

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

перерисовка заголовка [D6, Win95/98]


Eugene_Jek_Efimochkin ©   (2002-08-18 00:43:00) 

Hail! Мастера, будьте любезны, помогите с сабжем.
Часть уже сделал: перекрыл WM_NCPAINT. НО! кнопки минимайз-максимайз-закрытие при пролете мыши все равно перерисовываются по-виндовски, на синем прямоугольничке (это, кстати, не тулбар случайно?).
Я так полагаю, нужно перекрывать WM_NCHITTEST, открывая inherited только если координаты не в прямоугольнике системных кнопок.

Только умоляю не отсылать меня на поиск: честное персидское, 2 (два) дня подряд искал, ниче полезного.

Да, ещё, может я зря корячусь... Кто-нить знает пример перерисовки заголовка (и рамки, но это проще) формы в Win98 под WinXP (я щас моделирую Silver) ??


Юрий Зотов   (2002-08-18 22:26:00) [1]

Система отрисовывает заголовок окна вызовом DrawCaption. Кнопки в область заголовка не входят, они рисуются отдельно, вызовом DrawFrameControl. Если выставить bsNone, то по NCPAINT можно самому вызывать эти функции и рисовать что угодно. Но при bsNone придется, конечно, самому эмулировать SYSCOMMAND.


Poirot   (2002-08-18 08:21:00) [2]

Господа!!!
Все компоненты, которые рисовани Каптион, и которые я изучал - не рисовали кнопки...
Единственное что можно предложить это самому на bsNone что-торисовать...
Сообщения знаем, Размеры каптиона с бордерами знаем, размер кнопок - знаем, рисунки кнопок в нажатом/отжатом виде тоже можем получить... что-ж нам мешает!!
ЗЫ: Клиентскую область тоже помоему можем изменить... ну вот и всё!!!!


MJH   (2002-08-18 01:22:00) [3]

у меня нефига не перерисовываются минимайзы...
может это от того, что перекрываю wm_ncКРЫСА_КЛИКИ ?
а рамку - GetSystemInfo() с соответсвующими флагами, выщитываешь прямоугольник, и StretchBlt() в него


Наверх

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