Функция SetLayeredWindowAttributes

Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
SetLayeredWindowAttributes устанавливает полупрозрачность или прозрачность окна
hWnd
Дескриптор слойного окна. Слойное окно создается при помощи параметра WS_EX_LAYERED при создании окна функцией CreateWindowEx или установки стиля WS_EX_LAYERED через SetWindowLong после создания окна
crKey
Значение цвета, которое будет считаться прозрачным в данном окне
bAlpha
Значение Alpha-канала, описывающее полупрозрачность слойного окна. Аналогично значению SourceConstantAlpha структуры BLENDFUNCTION. Когда bAlpha равно 0, окно совершенно прозрачно. Когда bAlpha равно 255, окно не прозрачно
dwFlags
Флаги, определяющие различные действия
LWA_COLORKEY = &H1Использовать crKey как прозрачный цвет
LWA_ALPHA = &H2Использовать bAlpha для определения прозрачности слойного окна

Пример

' Делаем часть окна прозрачным
' Установите на форме Picture1 (картинку)
' и присвойте его свойству BackColor любое значение
Dim ret As Long
Dim myback as Long

myback = Picture1.BackColor
' Устанавливаем стиль Layered
ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
ret = ret Or WS_EX_LAYERED
SetWindowLong Me.hWnd, GWL_EXSTYLE, ret

' Установим значение crKey в цвет фона картинки
' Теперь место картинки будет прозрачным
SetLayeredWindowAttributes Me.hWnd, myback, 0, LWA_COLORKEY

' Второй пример - делаем окно полупрозрачным
Dim ret As Long
    
' Устанавливаем стиль Layered
ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
ret = ret Or WS_EX_LAYERED
SetWindowLong Me.hWnd, GWL_EXSTYLE, ret

' устанавливаем уровень полупрозрачности
SetLayeredWindowAttributes Me.hWnd, 0, 128, LWA_ALPHA

Категория

Окна