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 函数适用于依赖于设备的位图。

通过将 A、B 和 C ) 的前三 (个点视为向量并计算 D = B +CA 来定义平行四边形 (D) 的第四个顶点。

如果存在位掩码,则掩码中的值 1 指示应将源像素颜色复制到目标。 掩码中的值为零表示不会更改目标像素颜色。 如果掩码矩形小于源矩形和目标矩形,则该函数将复制掩码图案。

源设备上下文中允许缩放、转换和反射转换;但是,不允许旋转和扭曲转换。 如果掩码位图不是单色位图,则会发生错误。 目标设备上下文的拉伸模式用于确定如何拉伸或压缩像素(如果有必要)。

记录增强型图元文件时,如果源设备上下文标识增强型图元文件设备上下文,则会发生错误。

目标坐标将根据目标设备上下文进行转换;源坐标将根据源设备上下文进行转换。 如果源转换有旋转或扭曲,则返回错误。

如果目标和源矩形的颜色格式不同, PlgBlt 将转换源矩形以匹配目标矩形。

并非所有设备都支持 PlgBlt 函数。 有关详细信息,请参阅 GetDeviceCaps 函数中RC_BITBLT光栅功能的说明。

如果源和目标设备上下文表示不兼容的设备, 则 PlgBlt 将返回错误。

在多监视器系统中使用时, hdcSrchdcDest 必须引用同一设备,否则函数将失败。 若要在不同设备的 DC 之间传输数据,请通过调用 GetDIBits 将内存位图转换为 DIB。 若要向第二台设备显示 DIB,请调用 SetDIBitsStretchDIBits

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 wingdi.h (包括 Windows.h)
Library Gdi32.lib
DLL Gdi32.dll

另请参阅

BitBlt

位图函数

位图概述

GetDIBits

GetDeviceCaps

MaskBlt

SetDIBits

SetStretchBltMode

StretchBlt

StretchDIBits