Функция AlphaBlend

Declare Function AlphaBlend Lib "msimg32" ( _
    ByVal hDestDC As Long, ByVal x As Long, _
	ByVal y As Long, ByVal nWidth As Long, _
	ByVal nHeight As Long, _
	ByVal hSrcDC As Long, _
	ByVal xSrc As Long, _
	ByVal ySrc As Long, _
	ByVal widthSrc As Long, _
	ByVal heightSrc As Long, _
	ByVal BLENDFUNCTION As Long) As Boolean

Функция AlphaBlend позволяет выводить картинку с прозрачными или полупрозрачным изображением.

Возвращаемое значение

В успешном случае функция возвращает True, в противном случае возвращается False (используйте GetLastError для получения кода ошибки)

Параметры

hDestDC
Описатель контекста устройства-приемника
x
Координата x верхнего левого угла прямоугольника-приемника
y
Координата y верхнего левого угла прямоугольника-приемника
nWidth
Ширина прямоугольника-приемника
nHeight
Высота прямоугольника-приемника
hSrcDC
Описатель контекста устройства-источника
xSrc
Координата x верхнего левого угла прямоугольника-источника
ySrc
Координата y верхнего левого угла прямоугольника-источника
widthSrc
Ширина прямоугольника-источника
heightSrc
Высота прямоугольника-источника
BLENDFUNCTION
Структура, определяющая режим вывода

Пример

' Поместите на форму два PictureBox
' Поместите туда ваши картинки
Dim BF As BLENDFUNCTION, lBF As Long
' Установим графический режим
Picture1.AutoRedraw = True
Picture2.AutoRedraw = True
' функции API используют пикселы
Picture1.ScaleMode = vbPixels
Picture2.ScaleMode = vbPixels
' Устанавливаем параметры
With BF
  .BlendOp = AC_SRC_OVER
  .BlendFlags = 0
  .SourceConstantAlpha = 128
  .AlphaFormat = 0
 End With
' копируем структуру BLENDFUNCTION в Long
CopyMemory lBF, BF, 4
' Накладываем одну картинку на другую
AlphaBlend Picture2.hdc, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight, Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, lBF

Категория

Графика

Реклама