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

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

WM_DRAWITEM и WM_PAINT


Labert ©   (2004-03-08 21:33:00) 

Нужно было сделать непрямоугольную кнопку. Форма кнопки задается картинкой BMP. Левый верхний пиксель задает прозрачный цвет. Прозрачные области поверхностью кнопки не считаются, и через них должна быть фидна форма, и все что на ней.

Сделал свою кнопку - на базе обычной кнопки Windows-класса 'Button'. Добавил стиль BS_OWNERDRAW. При обработке события WM_DRAWITEM рисую заранее сформированный битмап. Тут все нормально.

Проблемы с обработкой WM_PAINT.
При поступлении сообщения WM_PAINT я делаю тоже самое - рисую битмап. Но контролы, которые по идее расположены ПОД моей кнопкой, перерисовывают себя СВЕРХУ моей кнопки. Получается неправильно. То есть это происходит, когда вся форма получает сообщение WM_PAINT.

BringWindowToTop() не помогает.

Помогите, кто может, пожалуйста.


wicked   (2004-03-09 03:02:00) [1]

SetWindowPos - должно по идее работать и для дочерних окон, но я сам не пробовал, не гарантирую...


Наверх

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