Функция StretchBlt

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

Синтаксис 

BOOL StretchBlt(
  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,      // высота исходного прямоугольника
  DWORD dwRop          // код растровой операции
);

Параметры

hdcDest

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

nXOriginDest

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

nYOriginDest

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

nWidthDest

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

nHeightDest

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

hdcSrc

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

nXOriginSrc

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

nYOriginSrc

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

nWidthSrc

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

nHeightSrc

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

dwRop

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

Список кодов стандартных растровых операций смотри в описании функции BitBlt.

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

Если функция завершается успешно, величина возвращаемого значения - не ноль.

Если функция завершается с ошибкой, величина возвращаемого значения - ноль.

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

Замечания

Функция StretchBlt растягивает или сжимает исходный точечный рисунок в памяти, а затем копирует результат в приемный прямоугольник. Этим точечным рисунком может быть или совместимый точечный рисунок (DDB) или вывод данных из функции CreateDIBSection. Данные о цвете для шаблона закрашивания или принимаемых пикселей объединяются после того, как произойдет растяжение или сжатие.

Когда записывается расширенный метафайл, происходит ошибка (и функция возвращает значение ЛОЖЬ (FALSE)), если исходный контекст устройства идентифицирует контекст устройства расширенного метафайла.

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

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

Если исходное преобразование - это вращение или сдвиг фрагмента изображения, происходит ошибка.

Если приемник, источник и шаблон закрашивания точечного рисунка имеют разный цветовой формат, функция StretchBlt преобразует источник и шаблон закрашивания рисунка, чтобы они соответствовали формату принимающего точечного рисунка.

Если StretchBlt конвертирует монохромный точечный рисунок в цветной, она устанавливает белые биты (1) в цвет фона, а черные биты (0) в цвет изображения. Чтобы конвертировать цветной точечный рисунок в монохромный, она устанавливает пиксели, которые соответствуют цвету фона в белый цвет (1), а  все другие пиксели устанавливает в черный (0). Цвет изображения и фона контекста устройства зависит от цвета, который использовался.

StretchBlt создает зеркальное изображение точечного рисунка, если знаки параметров nWidthSrc и nWidthDest  или параметров nHeightSrc и nHeightDest  отличаются. Если nWidthSrc и nWidthDest имеют разные знаки, функция создает зеркальное изображение точечного рисунка по оси X. Если nHeightSrc и nHeightDest имеют разные знаки, функция создает зеркальное изображение точечного рисунка по оси Y.

Не все устройства поддерживают функцию StretchBlt. Подробную информацию, см. в описании функции GetDeviceCaps.

ICM: Если происходит передача блоков данных, управление цветом не выполняется.

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

Код примера

Пример смотри в статье Масштабирование изображения.

Смотри также 

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

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

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версия  3.1 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

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

Gdi32.lib

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

 

- объявлено в

Wingdi.h

- включено в

Windows.h

Unicode

Нет

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

Не имеется

 

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

Hosted by uCoz