Тонкости Оконных Перерисовок

Общие вопросы, не зависящие от языка реализации.

Модераторы: Duncon, Eugie, Romeo, Hawk

Ответить
Sera
Сообщения: 38
Зарегистрирован: 03 мар 2005, 17:23
Откуда: Симферополь

15 июл 2005, 16:58

Всем - Здраствуйте!

Есть окно, у которого достаточно сложная перересовка.
Когда я создаю дочернее к нему окно (пока с пустой перерисовкой), то вижу на родительском окне "грязный" прямоугольник дочернего окна. Все вполне логично.

Дело в том, что мне нужно, чтобы дочернее окно не перерисовывало свой клиентский прямоугольник, а рисовало поверх родительского (как бы на прозрачном фоне).
Полагаю, что дело в стилях (WNDCLASS.cs или других), но пока разобраться не могу.

Подскажите что-нибудь, пожалуйста.
Заранее спасибо.
ssDev
Сообщения: 50
Зарегистрирован: 20 янв 2005, 14:41

18 июл 2005, 07:44

По идее если ты создаеш родительское окно без стиля WS_CLIPCHILDREN и блокируеш WM_ERASEBKGND в дочернем окне то все должно работать. (Конечно может быть еще много разных фич) :evil:
Eugie
Сообщения: 707
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

18 июл 2005, 11:57

Можно еще для дочернего окна задать пустую кисть (HOLLOW_BRUSH) - эффект тот же.
Начиная с Win2000 появилась возможность использовать полупрозрачные (layered) окна, см. http://msdn.microsoft.com/library/defau ... yerwin.asp
Sera
Сообщения: 38
Зарегистрирован: 03 мар 2005, 17:23
Откуда: Симферополь

18 июл 2005, 13:44

Большое спасибо, ssDev, дело все-таки оказалось в ненужном WS_CLIPCHILDREN родительского окна.
Ответить