Функция AlphaBlend показывает на экране точечные рисунки, которые имеют прозрачные или полупрозрачные пиксели.
Синтаксис
BOOL AlphaBlend( HDC hdcDest, // дескриптор целевого DC int nXOriginDest, // x-коорд. левого верхнего угла int nYOriginDest, // y-коорд. левого верхнего угла int nWidthDest, // ширина целевого прямоугольника int nHeightDest, // высота целевого прямоугольника HDC hdcSrc, // дескриптор источникового DC int nXOriginSrc, // x-коорд. левого верхнего угла int nYOriginSrc, // y-коорд. левого верхнего угла int nWidthSrc, // ширина источникового прямоугольника int nHeightSrc, // высота источникового прямоугольника BLENDFUNCTION blendFunction // функция α - перехода ); |
Параметры
hdcDest
[in] Дескриптор целевого контекст устройства.nXOriginDest
[in] Устанавливает x-координату, в логических единицах измерения, левого верхнего угла целевого прямоугольника.nYOriginDest
[in] Устанавливает y-координату, в логических единицах измерения, левого верхнего угла целевого прямоугольника.nWidthDest
[in] Определяет ширину, в логических единицах измерения, левого верхнего угла целевого прямоугольника.nHeightDest
[in] Определяет высоту, в логических единицах измерения, левого верхнего угла целевого прямоугольника.hdcSrc
[in] Дескриптор исходного контекста устройства.nXOriginSrc
[in] Устанавливает x-координату, в логических единицах измерения, левого верхнего угла исходного прямоугольника.nYOriginSrc
[in] Устанавливает y-координату, в логических единицах измерения, левого верхнего угла исходного прямоугольника.nWidthSrc
[in] Определяет ширину, в логических единицах измерения, левого верхнего угла исходного прямоугольника.nHeightSrc
[in] Определяет высоту, в логических единицах измерения, левого верхнего угла исходного прямоугольника.blendFunction
[in] Устанавливает функцию alpha-перехода для исходного и целевого точечных рисунков, основное alpha-значение, которое будет применено ко всему исходный точечному рисунку и формат информации для исходного точечного рисунка. Исходная и целевая функции смешивания в настоящий момент ограничены значением AC_SRC_OVER. См. описание структур BLENDFUNCTION и EMRALPHABLEND.Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - ИСТИНА (TRUE).
Если функция завершается с ошибкой, возвращаемое значение - ЛОЖЬ (FALSE).
Windows NT/2000/XP: Чтобы получить дополнительные сведения об ошибке, вызовите GetLastError. Функция может возвратить нижеследующее значение.
Значение | Предназначение |
---|---|
ERROR_INVALID_PARAMETER | Один или несколько входных параметров недопустимы. |
Замечания
Если исходный и целевой прямоугольник имеют не один и тот же размер, исходный точечный рисунок растягивается, чтобы соответствовать целевому прямоугольнику. Если используется функция SetStretchBltMode, значение iStretchMode для этой функции автоматически преобразуется в COLORONCOLOR (то есть BLACKONWHITE, WHITEONBLACK, и HALFTONE изменяются в COLORONCOLOR).
Целевые координаты преобразуются при помощи использования преобразования в текущий момент заданного для цели контексте устройства. Исходные координаты преобразуются при помощи использования преобразования в текущий момент заданного для источника контекста устройства.
Если исходный контекст устройства идентифицирует контекст устройства расширенного метафайла, происходит ошибка (и функция возвращает значение ЛОЖЬ (FALSE)),
Если целевые и исходные точечные рисунки не имеют одного и того же цветового формата, функция AlphaBlend конвертирует исходный точечный рисунок так, чтобы он соответствовал целевому точечному рисунку.
Функция AlphaBlend не поддерживает зеркалирование. Если, или ширина, или высота источника или цели имеет отрицательное значение, ее вызов завершится ошибкой.
При воспроизведении на принтере, сначала вызывается функции GetDeviceCaps с флажком SHADEBLENDCAPS, чтобы выяснить, поддерживает ли принтер режим α - перехода с функцией AlphaBlend.
Обратите внимание! на то, что это, для контекста устройства (DC) дисплея, все операции α - перехода поддерживаются, и эти флажки обозначают, ускорены ли операции. |
Если источник и цель - та же самая поверхность то есть, они являются и экраном, и тем же самым точечным рисунком в памяти - и исходный и целевой прямоугольники перекрываются, происходит ошибка и функция возвращает значение ЛОЖЬ (FALSE).
Исходный прямоугольник должен располагаться полностью в пределах исходной поверхности, в противном случае происходит ошибка, и функция возвращает значение ЛОЖЬ (FALSE).
Функция AlphaBlend завершается ошибкой, если ширина или высота источника или цели - отрицательное значение.
Обратите внимание! на то, что член SourceConstantaAlpha структуры BLENDFUNCTION устанавливает значение прозрачности α, которое будет использовано на всем исходном точечном рисунке. Значение SourceConstantAlpha комбинируется с любым alpha-значением пикселя. Если SourceConstantAlpha - 0, то предполагается, что изображение является прозрачным. Устанавливайте значение SourceConstantAlpha в 255 (которое обозначает, что изображение непрозрачно) тогда, когда Вам нужно использовать только alpha-значения пикселей. |
Смотри также
Обзор Точечные рисунки, Функции, используемые точечными рисунками, BLENDFUNCTION, EMRALPHABLEND, GetDeviceCaps, SetStretchBltMode
Размещение и совместимость AlphaBlend |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Нет |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Нет |
Используемая библиотека |
Включена как ресурс в Msimg32.dll |
Заголовочный файл |
|
- объявлено в |
Wingdi.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |