Функция TransparentBlt


Функция TransparentBlt выполняет передачу битовых блоков данных о цвете, соответствующих прямоугольнику пикселей заданного исходного контекста устройства в целевой контекст устройства.

Синтаксис

 BOOL TransparentBlt(
  HDC hdcDest,        // дескриптор приемного DC
  int nXOriginDest,   // x-коорд. верхнего левого угла приемника
  int nYOriginDest,   // y-коорд. верхнего левого угла приемника
  int nWidthDest,     // ширина приемного прямоугольника
  int hHeightDest,    // высота приемного прямоугольника
  HDC hdcSrc,         // дескриптор источникового DC
  int nXOriginSrc,    // x-коорд. верхнего левого угла источника
  int nYOriginSrc,    // y-коорд. верхнего левого угла источника
  int nWidthSrc,      // ширина источникового прямоугольника
  int nHeightSrc,     // высота источникового прямоугольника
  UINT crTransparent  // цвет который делается прозрачным
);

Параметры

hdcDest

[in] Дескриптор целевого контекста устройства.

nXOriginDest

[in] Определяет x-координату левого верхнего угла принимающего прямоугольника, в логических единицах измерения.

nYOriginDest

[in] Определяет y-координату левого верхнего угла принимающего прямоугольника, в логических единицах измерения.

nWidthDest

[in] Определяет ширину  принимающего прямоугольника, в логических единицах измерения.

hHeightDest

[in] Дескриптор высоты принимающего прямоугольника, в логических единицах измерения.

hdcSrc

[in] Дескриптор исходного контекста устройства.

nXOriginSrc

[in] Определяет x-координату исходного прямоугольника, в логических единицах измерения.

nYOriginSrc

[in] Определяет y-координату исходного прямоугольника, в логических единицах измерения.

nWidthSrc

[in] Определяет ширину исходного прямоугольника, в логических единицах измерения.

nHeightSrc

[in] Определяет высоту исходного прямоугольника, в логических единицах измерения.

crTransparent

[in] Цвет RGB в исходном точечном рисунке, который обращается в прозрачный.

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

Если функция завершается успешно, возвращаемое значение - ИСТИНА (TRUE).

Если функция завершается с ошибкой, возвращаемое значение - ЛОЖЬ (FALSE).

Windows NT/2000/XP: Чтобы получить дополнительные сведения об ошибке, вызовите GetLastError.

Замечания

Функция TransparentBlt работает с совместимыми точечными рисунками (DDB).

Функция TransparentBlt поддерживает все форматы  исходных точечных рисунков. Однако, 32 битовые на пиксель (bpp) точечные рисунки она всего лишь копирует поверх alpha-значения. Используйте функцию AlphaBlend, чтобы задавать прозрачность для 32 битовых на пиксель точечных рисунков.

Если источниковый и принимающие прямоугольники имеют разные размеры, исходный точечный рисунок растягивается так, чтобы соответствовать принимающему прямоугольнику. Когда  используется функция SetStretchBltMode , в iStretchMode режимы из BLACKONWHITE и WHITEONBLACK для функции TransparentBlt преобразуются в режим COLORONCOLOR .

Принимающий контекст устройства устанавливает тип преобразования целевых координат. Исходный контекст устройства устанавливает тип преобразования источниковых координат.

Функция TransparentBlt не зеркалирует точечный рисунок, если или ширина или высота, или источника или приемника, являются отрицательным значением.

Windows 95/98: TransparentBlt содержит опасность "утечки памяти", которая может исчерпать системные ресурсы. Чтобы нарисовать прозрачный точечный рисунок, используйте функцию BitBlt, см. Базовые сведения статья Q79212.

Windows 98/Me, Windows 2000/XP: Когда используется многокомпонентная система монитора, и hdcSrc и hdcDest должны ссылаться на одно и тот же устройство, иначе функция завершится ошибкой. Чтобы пересылать данные между контекстами устройства (DC) разных устройств, конвертируйте точечный рисунок в памяти в аппаратно-независимый растровый формат (DIB) при помощи вызова функции GetDIBits. Чтобы показать на экране аппаратно-независимый растровый формат (DIB) на втором устройстве, вызовите функцию SetDIBits или StretchDIBits.

Смотри также 

Обзор Точечные рисунки, Функции, используемые точечными рисунками,  AlphaBlend, GetDIBits, SetDIBits, SetStretchBltMode, StretchDIBits

Размещение и совместимость TransparentBlt 

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Нет

Windows Me

Да

Windows 98

Да

Windows 95

Нет

Используемая библиотека

Использует Msimg32.dll

Заголовочный файл

 

- объявлено в

Wingdi.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz