Функция 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 |