### 函数功能

该函数对源设备环境中指定的矩形区域中的颜色数据位进行位块转换，并转换到目标设备环境中指定的平行四边形里。如果给定的位掩码句柄表示为有效的单色位图，那么函数使用该位图来对源矩形中的颜色数据进行掩码（屏蔽）操作。

### 函数原型

BOOL PlgBlt(HDC hdcDest, CONST POINT *lpPoint, HDC hdcSrc,int nXSrc, int nYSrc, int nWidth, int nHeight, HBITMAP hbmMask, int xMask, int yMask)；

### 参数

hdcDest：指向目标设备环境的句柄。
lpPoint：指向代表目标平行四边形3个角的3个顶点的数组指针。源矩形的左上角映射到该数组的第1个顶点，右上角映射为数组中的第2个顶点，左下角映射成第3个顶点。而右下角则映射成平行四边形中隐含的第4个点。
hdcSrc：指向源设备环境的句柄。
nXSrc：指定源矩形左上角的X轴坐标，按逻辑单位。
nYSrc：指定源矩形左上角的Y轴坐标，按逻辑单位。
nWidth：指字源矩形的宽度，按逻辑单位。
nheight：指定源矩形的高度，按逻辑单位。
hbMask：指向可选的单色位图的句柄。该位图是用来对源矩形的颜色进行屏蔽用的。
xMask：指定单色位图左上角的X轴坐标。
yMask：指定单色位图左上角的Y轴坐标。

### 返回值

如果函数成功，那么返回值非零；如果函数失败，则返回值为零。
Windows NT：若想获得更多错误信息，请调用GetLastError函数。
备注：平行四边形的第4个顶点（D）是通过把头3个顶点（A、B、C）当作矢量，并按D＝B＋C＋A计算来定义的。如果存在位掩码，那么掩码中的数值1表示应该将源像素的颜色拷贝到目标像素点上。掩码中的数值0表示不改变目标像素颜色。如果掩码矩形比源和目标矩形要小，那么该函数重复掩码模式。
在源设备环境中，允许有伸缩、平移和反射变换，然而禁止有旋转和剪切变换。如果掩码位图不是单色位图，那将会出现错误。在需要时，目标设备环境用的伸展模式是用来定义如何拉伸或压缩像素的。
当正在对一个增强型图元文件进行记录时，如果源设备环境标识为增强型图元文件设备环境，那么将出现错误。目标坐标根据目标设备环境进行变换，源坐标是根据源设备环境进行变换。如果源变换有旋转或剪切，那么会返回一个错误。如果目标和源矩形颜色格式不相同，那么Plgblt对源矩形进行转换，以与目标矩形匹配。不是所有设备都支持PlgBlt函数，若想了解更多信息，那么GetDeviceCaps函数中有关RC_BITBLT光栅特性的描述。如果源和目标设备环境代表不兼容设备，那么PlgBlt返回一个错误。

### 速查

Windows NT：3.1及以上版本；Windows：不支持；Windows CE：不支持；头文件：wingdi.h；库文件：gdi32.lib。