CDC::StretchBlt

将源矩形的位图到目标矩形,如果需要,拉伸或压缩位图以适应目标矩形的尺寸。

BOOL StretchBlt(
   int x,
   int y,
   int nWidth,
   int nHeight,
   CDC* pSrcDC,
   int xSrc,
   int ySrc,
   int nSrcWidth,
   int nSrcHeight,
   DWORD dwRop 
);

参数

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

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

  • nWidth
    指定宽度(以逻辑单位)的目标矩形。

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

  • pSrcDC
    指定源设备上下文。

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

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

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

  • nSrcHeight
    指定高度(以逻辑单位)源矩形。

  • dwRop
    指定要执行的光栅操作。 光栅操作代码定义GDI如何组合在涉及一个当前画笔、一个可能的源位图和一个目标位图的输出操作的颜色。 此参数可以为下列值之一:

    • BLACKNESS 启用所有输出黑色。

    • DSTINVERT 反转目标位图。

    • 使用布尔值"与"运算符,MERGECOPY 合并架构与源位图。

    • 使用布尔值或运算符,MERGEPAINT 合并的倒转源位图与目标位图。

    • NOTSRCCOPY 复制的倒转源位图为目标。

    • 使用布尔值或运算符,NOTSRCERASE 反转合并目标与源位图的结果。

    • PATCOPY 复制该架构与目标位图。

    • 使用布尔"异或"运算符,PATINVERT 合并目标位图与模式。

    • 使用布尔值或运算符,PATPAINT 合并的倒转源位图与模式。 使用布尔值或运算符,将此操作的结果与目标位图的。

    • 使用布尔值"与"运算符,SRCAND 合并目标与源位图的像素。

    • SRCCOPY 复制源位图到目标位图。

    • 使用布尔值"与"运算符,SRCERASE 反转目标位图和合并结果与源位图。

    • 使用布尔"异或"运算符,SRCINVERT 合并目标与源位图的像素。

    • 使用布尔值或运算符,SRCPAINT 合并目标与源位图的像素。

    • WHITENESS 启用所有输出空白。

返回值

非零,则绘制位图;否则为0。

备注

函数如何使用目标设备上下文的拉伸模式(设置 SetStretchBltMode)确定到拉伸或压缩位图。

StretchBlt 函数从 pSrcDC 给定的源计算机将位图成员函数调用的设备上下文对象表示的目标设备。 xSrc、 ySrc、 nSrcWidth和 nSrcHeight 参数定义源矩形的左上角和维度。 xy、 nWidth和 nHeight 参数指定目标矩形的左上角和维度。 dwRop 指定的光栅操作定义源和位图位已在目标设备如何合并。

如果 nSrcWidth 的符号和 nWidth 或 nSrcHeight 和 nHeight 参数不同,StretchBlt 函数生成位图的镜像。 如果 nSrcWidth 和 nWidth 具有不同的符号,函数生成位图的镜像沿X轴的。 如果 nSrcHeight 和 nHeight 具有不同的符号,函数生成位图的镜像沿y轴的。

StretchBlt 功能拉伸或压缩内存中的源位图然后复制结果为目标。 如果架构将该结果合并,它不会合并,直到拉伸的源位图复制到该目标。 如果使用画笔,它是将向选定的画笔在目标设备上下文。 目标坐标根据目标设备上下文转换;源坐标是由设备上下文进行转换。

如果目标、源和模式位图没有相同颜色的格式,StretchBlt 转换源和模式位图与目标位图。 目标设备上下文的前景色和背景色用于转换。

如果 StretchBlt 必须转换为单色位图转换为颜色,它将空白位(1)为与黑色(0位)对前景色。 若要将颜色为将照片,它设置为与背景色设置为白色(1)的像素和设置其他像素黑色(0)。 使用设备上下文的前景色和背景颜色的颜色的。

并非所有设备的支持 StretchBlt 功能。 若要确定计算机是否支持 StretchBlt,请调用与 RASTERCAPS 索引的 GetDeviceCaps 成员函数并检查返回值 RC_STRETCHBLT 标志。

要求

Header: afxwin.h

请参见

参考

CDC 类

层次结构图

CDC::BitBlt

CDC::GetDeviceCaps

CDC::SetStretchBltMode

StretchBlt