Прозрачность окон в ОС Windows

  • Автор темы Автор темы biz
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
B

biz

Хотелось бы разъяснить вопрос прозрачности окон в ОС Windows... Что и как проще всего зделать.
 
Публикую культовый способ (т.е. его часть):
Код:
	...
HBITMAP		hDIB;
long *			p_dib;

POINT			ptSrc;
POINT			ptWindow;
SIZE			szWindow;
HDC			hDCMemory;
BLENDFUNCTION	blend;

ZeroMemory( &bmi, sizeof( BITMAPINFO ) );
bmi.bmiHeader.biSize		= sizeof( BITMAPINFOHEADER );
bmi.bmiHeader.biWidth		= 200;  // ширина окна
bmi.bmiHeader.biHeight		= -100; // высота (минус нужен для того, чтобы изображение бфло не upside-down)
bmi.bmiHeader.biPlanes		= 1;
bmi.bmiHeader.biBitCount	= 32;
bmi.bmiHeader.biCompression	= BI_RGB;
hDIB = CreateDIBSection( GetDC( hWnd ), &bmi, DIB_RGB_COLORS, (void **)&p_dib, NULL, 0 );

... заполняем p_dib прозрачным изображением ...

ptSrc.x = 0;
ptSrc.y = 0;
ptWindow.x = x;
ptWindow.y = y;
szWindow.cx = width;
szWindow.cy = height;

hDCMemory = CreateCompatibleDC( NULL );
SelectObject( hDCMemory, hDIB );

blend.BlendOp			= AC_SRC_OVER;
blend.BlendFlags		= 0;
blend.SourceConstantAlpha	= 255;  // общая прозрачность окна
blend.AlphaFormat		= AC_SRC_ALPHA;

UpdateLayeredWindow( hWnd, NULL, &ptWindow, &szWindow, hDCMemory, &ptSrc, 0, &blend, ULW_ALPHA );
...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab