Поделиться через


Функция PlgBlt (wingdi.h)

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

Синтаксис

BOOL PlgBlt(
  [in] HDC         hdcDest,
  [in] const POINT *lpPoint,
  [in] HDC         hdcSrc,
  [in] int         xSrc,
  [in] int         ySrc,
  [in] int         width,
  [in] int         height,
  [in] HBITMAP     hbmMask,
  [in] int         xMask,
  [in] int         yMask
);

Параметры

[in] hdcDest

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

[in] lpPoint

Указатель на массив из трех точек в логическом пространстве, определяющих три угла параллелограммы назначения. Верхний левый угол исходного прямоугольника сопоставляется с первой точкой в этом массиве, правый верхний угол — со второй точкой в этом массиве, а левый нижний угол — с третьей точкой. Правый нижний угол исходного прямоугольника сопоставляется с неявной четвертой точкой параллелограмма.

[in] hdcSrc

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

[in] xSrc

Координата X в логических единицах верхнего левого угла исходного прямоугольника.

[in] ySrc

Координата Y в логических единицах верхнего левого угла исходного прямоугольника.

[in] width

Ширина исходного прямоугольника в логических единицах.

[in] height

Высота исходного прямоугольника в логических единицах.

[in] hbmMask

Дескриптор необязательного монохромного растрового изображения, используемого для маскирования цветов исходного прямоугольника.

[in] xMask

Координата X в логических единицах верхнего левого угла монохромного растрового изображения.

[in] yMask

Координата Y в логических единицах верхнего левого угла монохромного растрового изображения.

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

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

Если функция выполняется неудачно, возвращается нулевое значение.

Комментарии

Функция PlgBlt работает с зависимыми от устройства растровыми изображениями.

Четвертая вершина параллелограмма (D) определяется путем обработки первых трех точек (A, B и C) как векторов и вычисления D = B +CA.

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

Преобразования масштабирования, преобразования и отражения разрешены в контексте исходного устройства; однако преобразования поворота и сдвига не являются. Если растровое изображение маски не является монохромным, возникает ошибка. Режим растяжения для контекста целевого устройства используется для определения способа растяжения или сжатия пикселей, если это необходимо.

При записи расширенного метафайла возникает ошибка, если контекст исходного устройства определяет контекст устройства с расширенным метафайлом.

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

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

Не все устройства поддерживают функцию PlgBlt . Дополнительные сведения см. в описании возможности RC_BITBLT растра в функции GetDeviceCaps .

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

При использовании в системе с несколькими мониторами hdcSrc и hdcDest должны ссылаться на одно и то же устройство, иначе функция завершится сбоем. Чтобы передать данные между контроллерами домена для разных устройств, преобразуйте растровое изображение памяти в DIB, вызвав Метод GetDIBits. Чтобы отобразить DIB на втором устройстве, вызовите SetDIBits или StretchDIBits.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header wingdi.h (включая Windows.h)
Библиотека Gdi32.lib
DLL Gdi32.dll

См. также раздел

BitBlt

Функции точечных рисунков

Общие сведения о точечных изображениях

Getdibits

GetDeviceCaps

MaskBlt

SetDIBits

SetStretchBltMode

StretchBlt

StretchDIBits