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

StretchBlt

Previous pageReturn to chapter overviewNext page

描述

 

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

 

C++ 语法

 

BOOL StretchBlt(

__in HDC hdcDest,

__in int nXOriginDest,

__in int nYOriginDest,

__in int nWidthDest,

__in int nHeightDest,

__in HDC hdcSrc,

__in int nXOriginSrc,

__in int nYOriginSrc,

__in int nWidthSrc,

__in int nHeightSrc,

__in DWORD dwRop

);

 

PowerBASIC 语法

 

BOOL StretchBlt(

BYVAL hdcDest AS DWORD, _

BYVAL nXOriginDest AS LONG, _

BYVAL nYOriginDest AS LONG, _

BYVAL nWidthDest AS LONG, _

BYVAL nHeightDest AS LONG, _

BYVAL hdcSrc AS DWORD, _

BYVAL nXOriginSrc AS LONG, _

BYVAL nYOriginSrc AS LONG, _

BYVAL nWidthSrc AS LONG, _

BYVAL nHeightSrc AS LONG, _

BYVAL dwRop AS DWORD _

);

 

参数

 

hdcDest

 

[in]处理目标设备上下文。

 

nXOriginDest

 

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

 

nYOriginDest

 

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

 

nWidthDest

 

[in]指定目的矩形的宽度(以逻辑为单位)。

 

nHeightDest

 

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

 

hdcSrc

 

[in]处理源设备上下文。

 

nXOriginSrc

 

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

 

nYOriginSrc

 

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

 

nWidthSrc

 

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

 

nHeightSrc

 

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

 

dwRop

 

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

 

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

 

返回值

 

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

 

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

 

Windows NT / 2000 / XPVista / Windows 7:要获取扩展错误信息,请调用GetLastError.

 

备注

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

Windows 98 / Me,Windows 2000 / XPVista / Windows 7:在多监视器系统中使用时,hdcSrc和hdcDest都必须引用相同的设备,否则功能将失败。要在不同设备的DC之间传输数据,请通过调用GetDIBits将内存位图转换为DIB。要将DIB显示到第二个设备,请调用SetDIBitsStretchDIBits.

 

引用文件 #INCLUDE Once

 

WinGdi.inc(包括Windows.inc)