Функция PlgBlt выполняет передачу блоков битов данных о цвете из заданного прямоугольника в исходном контексте устройства в заданный параллелограмм в целевом контексте устройства. Если данный дескриптор битовой маски идентифицирует правильный одноцветный точечный рисунок, функция использует этот точечный рисунок, чтобы маскировать биты данных о цвете исходного прямоугольника.
Синтаксис
BOOL PlgBlt( HDC hdcDest, // дескриптор целевого DC CONST POINT *lpPoint, // целевые вершины HDC hdcSrc, // дескриптор источникового DC int nXSrc, // x-коорд. левого верхнего угла источника int nYSrc, // y-коорд. левого верхнего угла источника int nWidth, // ширина источникового прямоугольника int nHeight, // высота источникового прямоугольника HBITMAP hbmMask, // дескриптор битовой маски int xMask, // x-коорд. левого верхнего угла битовой маски int yMask // y-коорд. левого верхнего угла битовой маски ); |
Параметры
hdcDest
[in] Дескриптор целевого контекста устройства.lpPoint
[in] Указатель на массив трех точек в логическом пространстве, которые идентифицируют три угла принимающего параллелограмма. Левый верхний угол исходного прямоугольника отображается первой точкой в этом массиве, правый верхний угол - второй точкой в этом массиве, а левый нижний угол - третьей точкой. Нижний правый угол исходного прямоугольника отображается неявной четвертой точкой в параллелограмме.hdcSrc
[in] Дескриптор исходного контекста устройства.nXSrc
[in] Определяет x-координату, в логических единицах измерения, левого верхнего угла исходного прямоугольника.nYSrc
[in] Определяет y-координату, в логических единицах измерения, левого верхнего угла исходного прямоугольника.nWidth
[in] Определяет ширину, в логических единицах измерения, исходного прямоугольника.nHeight
[in] Определяет высоту, в логических единицах измерения, исходного прямоугольника.hbmMask
[in] Дескриптор необязательного монохромного точечного рисунка, который используется для маски цвета исходного прямоугольника.xMask
[in] Определяет x-координату, в логических единицах измерения, левого верхнего угла одноцветного точечного рисунка.yMask
[in] Определяет y-координату, в логических единицах измерения, левого верхнего угла одноцветного точечного рисунка.Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - не нуль.
Если функция завершается с ошибкой, величина возвращаемого значения - нуль.
Windows NT/2000/XP: Чтобы получать дополнительные сведения об ошибке, вызовите GetLastError.
Замечания
Функция PlgBlt работает с аппаратно-зависимыми точечными рисунками.
Четвертая вершина параллелограмма
(D)
определяется путем рассмотрения
первых трех точек (A, B и C) как векторов и
вычисления
D = B + C - A. |
Если битовая маска существует, значение единицы в маске указывает, что исходный цвет пикселя должен копироваться в целевой. Значение нуля в маске указывает, что принимающий цвет пикселя не должен изменяться. Если прямоугольник маски является меньше чем источниковый и целевой прямоугольники, функция точно копирует шаблон маски.
В исходном контексте устройства позволяются преобразования масштабирования, сдвига и отражения; однако преобразования вращения (циклический сдвиг) и сдвига фрагмента изображения - не разрешается. Если точечный рисунок маски - не монохромный точечный рисунок, происходит ошибка. Режим растяжения целевого контекста устройства используется чтобы определить, как растянуть или сжать пиксели, если это необходимо.
Когда фиксируется расширенный метафайл, происходит ошибка, если исходный контекст устройства идентифицирует контекст устройства расширенного метафайла.
Целевые координаты преобразуются в соответствии с целевым контекстом устройства; исходные координаты преобразуются согласно исходному контексту устройства. Если источник делает преобразование вращения или сдвига фрагмента изображения, возвращается значение ошибки.
Если целевой и исходный прямоугольники не имеют одинакового цветового формата, PlgBlt конвертирует исходный прямоугольник, чтобы тот соответствовал целевому прямоугольнику.
Не все устройства поддерживают функцию PlgBlt. Подробную информацию, см. в описании растровой возможности RC_BITBLT в функции GetDeviceCaps.
Если источниковый и целевой контексты устройства представляют несовместимые устройства, функция PlgBlt возвращает значение ошибки.
Windows 2000/XP: Когда функция используется в системе многоэкранного монитора, и hdcSrc, и hdcDest должны ссылаться на одно и то же устройство, иначе функция завершится ошибкой. Для пересылки данных между контекстами устройства (DC) различных устройств, конвертируйте точечный рисунок в памяти в аппаратно-независимый растровый формат (DIB) при помощи вызова функции GetDIBits. Чтобы показать на экране формат (DIB) на втором устройстве, вызовите функцию SetDIBits или StretchDIBits.
Смотри также
Обзор Точечные рисунки, Функции, используемые точечными рисунками, BitBlt, GetDeviceCaps, GetDIBits, MaskBlt, SetStretchBltMode, StretchBlt, StretchDIBits
Размещение и совместимость PlgBlt |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Нет |
Windows 98 |
Нет |
Windows 95 |
Нет |
Используемая библиотека |
Gdi32.lib |
Заголовочный файл |
|
- объявлено в |
Wingdi.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |