StretchBlt

【勇芳软件工作室】汉化HomePreviousNext

StretchBlt功能将位图从源矩形复制到目标矩形中,如有必要,可以拉伸或压缩位图以适应目标矩形的尺寸。Windows根据目标设备上下文中设置的拉伸模式,拉伸或压缩位图。

BOOL StretchBlt(

HDC 【hdcDest】,//目标设备上下文的句柄
INT 【nXOriginDest】,// dest的左上角的x坐标。RECT。
INT 【nYOriginDest】,// dest的左上角的y坐标RECT。
INT 【nWidthDest】,//目标矩形的宽度
INT 【nHeightDest】,//目标矩形的高度
HDC 【hdcSrc】,//处理源设备上下文
INT 【nXOriginSrc】,//源矩形左上角的x坐标
INT 【nYOriginSrc】,//源矩形左上角的y坐标
INT 【nWidthSrc】,//源矩形的宽度
INT 【nHeightSrc】,//源矩形的高度
DWORD 【dwRop】//光栅操作码
); 

参数

【hdcDest】

标识目标设备上下文。

【nXOriginDest】

指定目标矩形左上角的x坐标(以逻辑为单位)。

【nYOriginDest】

指定目标矩形左上角的y坐标(以逻辑为单位)。

【nWidthDest】

指定目标矩形的逻辑单位宽度。

【nHeightDest】

指定目标矩形的高度(以逻辑为单位)。

【hdcSrc】

标识源设备上下文。

【nXOriginSrc】

指定源矩形左上角的x坐标(以逻辑为单位)。

【nYOriginSrc】

指定源矩形左上角的y坐标(以逻辑为单位)。

【nWidthSrc】

指定源矩形的宽度(以逻辑为单位)。

【nHeightSrc】

指定源矩形的高度(以逻辑为单位)。

【dwRop】

指定要执行的光栅操作。光栅操作代码定义Windows如何组合涉及画笔,源位图和目标位图的输出操作中的颜色。

有关常见栅格操作代码的列表,请参阅BitBlt函数。

返回值

如果函数成功,返回值不为零。

如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.

备注

StretchBlt在内存中拉伸或压缩源位图,然后将结果复制到目标矩形。模式或目标像素的颜色数据在拉伸或压缩发生后合并。

当记录增强的图元文件时,如果源设备上下文识别增强型图元文件设备上下文,则会发生错误(并且函数返回FALSE)。

如果指定的栅格操作需要画笔,Windows将使用当前选定的画笔作为目标设备上下文。

通过使用当前为目标设备上下文指定的变换来转换目的地坐标;通过使用当前为源设备上下文指定的变换来转换源坐标。

如果源转换有旋转或剪切,则会发生错误。

如果目标,源和模式位图不具有相同的颜色格式,StretchBlt将源和模式位图转换为匹配目标位图。

如果StretchBlt必须将单色位图转换为彩色位图,则将白色位(1)设置为背景颜色,将黑色位(0)设置为前景色。要将彩色位图转换为单色位图,它将将背景颜色匹配的像素设置为白色(1),并将所有其他像素设置为黑色(0)。使用具有颜色的设备上下文的前景色和背景颜色。

如果【nWidthSrc】【nWidthDest】参数或【nHeightSrc】【nHeightDest】参数的符号不同,StretchBlt会创建位图的镜像。如果【nWidthSrc】【nWidthDest】具有不同的符号,则该函数将沿x轴创建位图的镜像。如果【nHeightSrc】【nHeightDest】具有不同的符号,则该函数将沿y轴创建位图的镜像。

并非所有设备都支持StretchBlt功能。有关详细信息,请参阅GetDeviceCaps功能。

也可以看看

BitBlt, GetDeviceCaps, MaskBlt, PlgBlt, SetStretchBltMode