StretchBlt 函数 (wingdi.h)

StretchBlt 函数将位图从源矩形复制到目标矩形,并在必要时拉伸或压缩位图以适应目标矩形的尺寸。 系统根据当前在目标设备上下文中设置的拉伸模式拉伸或压缩位图。

语法

BOOL StretchBlt(
  [in] HDC   hdcDest,
  [in] int   xDest,
  [in] int   yDest,
  [in] int   wDest,
  [in] int   hDest,
  [in] HDC   hdcSrc,
  [in] int   xSrc,
  [in] int   ySrc,
  [in] int   wSrc,
  [in] int   hSrc,
  [in] DWORD rop
);

参数

[in] hdcDest

目标设备上下文的句柄。

[in] xDest

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

[in] yDest

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

[in] wDest

目标矩形的宽度(以逻辑单元表示)。

[in] hDest

目标矩形的高度(以逻辑单元表示)。

[in] hdcSrc

源设备上下文的句柄。

[in] xSrc

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

[in] ySrc

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

[in] wSrc

源矩形的宽度(以逻辑单元表示)。

[in] hSrc

源矩形的高度(以逻辑单元表示)。

[in] rop

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

有关 IOPS) (常见光栅操作代码的列表,请参阅 BitBlt 。 请注意,捕获BLT ROP 通常不能用于打印设备上下文。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。

注解

StretchBlt 在内存中拉伸或压缩源位图,然后将结果复制到目标矩形。 此位图可以是兼容位图 (DDB) ,也可以是 CreateDIBSection 的输出。 在拉伸或压缩发生后,将合并图案或目标像素的颜色数据。

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

如果指定的光栅操作需要画笔,系统会使用当前在目标设备上下文中选择的画笔。

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

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

如果目标位图、源位图和图案位图的颜色格式不同, StretchBlt 会将源位图和图案位图转换为与目标位图匹配。

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

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

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

Icm: 发生 blit 操作时,不执行颜色管理。

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

示例

有关示例,请参阅 缩放图像

要求

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

另请参阅

BitBlt

位图函数

位图概述

CreateDIBSection

GetDIBits

GetDeviceCaps

MaskBlt

PlgBlt

SetDIBits

SetStretchBltMode

StretchDIBits