psilogic: (Default)
[personal profile] psilogic
Хе-хе... долго ковырялся, как сделать частично прозрачное окно типа "Ассистента" у Microsoft Word или скругленных уголков у окна WinAmp. Ковыряния увенчались успехом, так что, если кому надо, делюсь фишкой.

0. Создаем окно WS_POPUP (только этот стиль, больше ничего)
1. Создаем пустой HRGN - CreateRectRgn(0, 0, 0, 0)
2. Добавляем туда (через CombineRgn) все области, которые НЕ должны быть прозрачными. В моем случае это все child-окна, но не само parent-окно.
3. Вызываем SetWindowRgn для этого окна и суммарного HRGN (важно: суммарный HRGN после этого не удаляем)
4. Только после этого делаем окно видимым - через ShowWindow(...SW_SHOWNOACTIVATE)

Роботаед *hop* *hop* :)

Date: 2009-08-02 11:13 pm (UTC)
From: [identity profile] psilogic.livejournal.com
хмм... тоже прикольно, даже не знаю что симпотишнее выблядит :)

Date: 2009-08-02 11:18 pm (UTC)
From: [identity profile] http://technorati.com/people/technorati/ketmar (from livejournal.com)
зависит от задачи. если нужны на окне стандартные (да и вообще любые с HWND) контролы — то делать регионы. если спрайтики/морда самопальная и рисуется вся на одном битмапе — SLWA. ну, а для окон-спрайтов кагбэ кроме SLWA нормальных вариантов и нет.
Page generated Aug. 28th, 2025 10:23 pm
Powered by Dreamwidth Studios