勇芳软件工作室.汉化:  Bitmaps > Bitmap Functions >

PlgBlt

Previous pageReturn to chapter overviewNext page

描述

 

PlgBlt功能执行将源设备上下文中指定矩形的颜色数据位的位块传输到目标设备上下文中指定的平行四边形。如果给定的位掩码句柄识别有效的单色位图,则该函数使用该位图来屏蔽源矩形中颜色数据的位。

 

C++ 语法

 

BOOL PlgBlt(

__in HDC hdcDest,

__in const POINT *lpPoint,

__in HDC hdcSrc,

__in int nXSrc,

__in int nYSrc,

__in int nWidth,

__in int nHeight,

__in HBITMAP hbmMask,

__in int xMask,

__in int yMask

);

 

PowerBASIC 语法

 

FUNCTION PlgBlt( _

BYVAL hdcDest AS DWORD, _

BYREF lpPoint AS POINT, _

BYVAL hdcSrc AS DWORD, _

BYVAL nXSrc AS LONG, _

BYVAL nYSrc AS LONG, _

BYVAL nWidth AS LONG, _

BYVAL nHeight AS LONG, _

BYVAL hbmMask AS DWORD, _

BYVAL xMask AS LONG, _

BYVAL yMask AS LONG _

) AS LONG

 

参数

 

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 / Vista / Windows 7:要获取扩展错误信息,请调用GetLastError。

 

备注

 

PlgBlt功能适用于与设备相关的位图。

 

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

 

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

 

在源设备上下文中允许进行缩放,翻译和反射转换;然而,旋转和剪切转换不是。如果掩码位图不是单色位图,则会发生错误。目的设备上下文的拉伸模式用于确定如何拉伸或压缩像素,如果需要的话。

 

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

 

目标坐标根据目标设备上下文进行变换;根据源设备上下文对源坐标进行变换。如果源转换具有旋转或剪切,则返回错误。

 

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

 

并非所有设备都支持PlgBlt功能。有关更多信息,请参阅GetDeviceCaps功能中的RC_BITBLT栅格功能的说明。

 

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

 

Windows 2000 / XP / Vista / Windows 7:当在多监视器系统中使用时,hdcSrchdcDest都必须引用同一个设备,否则该函数将失败。要在不同设备的DC之间传输数据,请通过调用GetDIBits将内存位图转换为DIB。要将DIB显示到第二个设备,请调用SetDIBitsStretchDIBits.

 

引用文件 #INCLUDE Once

 

WinGdi.inc(包括Windows.inc)