Функция 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
Категория
Окна