描述
BitBlt功能执行与从指定源设备上下文到目标设备上下文的像素矩形对应的颜色数据的位块传输。
C++ 语法
BOOL BitBlt( __in HDC hdcDest, __in int nXDest, __in int nYDest, __in int nWidth, __in int nHeight, __in HDC hdcSrc, __in int nXSrc, __in int nYSrc, __in DWORD dwRop ); |
PowerBASIC 语法
FUNCTION BitBlt( _ BYVAL hdcDest AS DWORD, _ BYVAL nXDest AS LONG, _ BYVAL nYDest AS LONG, _ BYVAL nWidth AS LONG, _ BYVAL nHeight AS LONG, _ BYVAL hdcSrc AS DWORD, _ BYVAL nXSrc AS LONG, _ BYVAL nYSrc AS LONG, _ BYVAL dwRop AS DWORD _ ) AS LONG |
参数
hdcDest
[in]处理目标设备上下文。
nXDest
[in]指定目标矩形左上角的x坐标(以逻辑为单位)。
nYDest
[in]指定目标矩形左上角的y坐标(以逻辑为单位)。
nWidth
[in]指定源矩阵和目标矩形的逻辑单位宽度。
nHeight
[in]指定源和目标矩形的高度(以逻辑为单位)。
hdcSrc
[in]处理源设备上下文。
nXSrc
[in]指定源矩形左上角的x坐标(以逻辑为单位)。
nYSrc
[in]指定源矩形左上角的y坐标(以逻辑为单位)。
dwRop
[in]指定光栅操作代码。这些代码定义了如何将源矩形的颜色数据与目标矩形的颜色数据组合以实现最终颜色。
以下列表显示了一些常见的栅格操作代码。
值 |
描述 |
BLACKNESS |
使用物理调色板中与索引0相关联的颜色填充目标矩形。(默认的物理色板为此颜色为黑色) |
CAPTUREBLT |
Windows 98 / Me,Windows 2000 / XP / Vista / Windows 7:包含在结果图像中分层在窗口顶部的任何窗口。默认情况下,图像只包含您的窗口。请注意,这通常不能用于打印设备上下文。 |
DSTINVERT |
反转目的矩形。 |
MERGECOPY |
通过使用布尔AND运算符,将源矩形的颜色与当前在hdcDest中选择的画笔合并。 |
MERGEPAINT |
使用布尔OR运算符将反向源矩形的颜色与目标矩形的颜色合并。 |
NOMIRRORBITMAP |
Windows 98 / Me,Windows 2000 / XP / Vista / Windows 7:防止位图被镜像。 |
NOTSRCCOPY |
将反向的源矩形复制到目的地。 |
NOTSRCERASE |
使用布尔OR运算符组合源和目标矩形的颜色,然后反转所得颜色。 |
PATCOPY |
将当前在hdcDest中选择的画笔复制到目标位图中。 |
PATINVERT |
通过使用布尔XOR运算符,将当前在hdcDest中选择的画笔的颜色与目标矩形的颜色相结合。 |
PATPAINT |
通过使用布尔OR运算符将hdcDest中当前选择的画笔的颜色与反向的源矩形的颜色相结合。此操作的结果与使用布尔OR运算符的目标矩形的颜色组合。 |
SRCAND |
使用布尔AND运算符组合源和目标矩形的颜色。 |
SRCCOPY |
将源矩形直接复制到目的矩形。 |
SRCERASE |
使用布尔AND运算符将目标矩形的反转颜色与源矩形的颜色组合。 |
SRCINVERT |
通过使用布尔XOR运算符组合源和目标矩形的颜色。 |
SRCPAINT |
使用布尔OR运算符组合源和目标矩形的颜色。 |
WHITENESS |
使用物理调色板中与索引1相关联的颜色填充目标矩形。(该颜色对于默认的物理调色板为白色。) |
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。
Windows NT / 2000 / XP / Vista / Windows 7:要获取扩展错误信息,请调用GetLastError.
备注
BitBlt仅在目的地DC上进行剪辑。
如果旋转或剪切变换在源设备上下文中有效,则BitBlt返回错误。如果在源设备上下文中存在其他变换(并且匹配变换在目标设备上下文中不起作用),则根据需要扩展,压缩或旋转目标设备上下文中的矩形。
如果源和目标设备上下文的颜色格式不匹配,则BitBlt??函数将源颜色格式转换为匹配目标格式。
当记录增强的图元文件时,如果源设备上下文识别增强的图元文件设备上下文,则会发生错误。
并非所有设备都支持BitBlt功能。有关详细信息,请参阅GetDeviceCaps功能中的RC_BITBLT光栅功能条目以及以下功能:MaskBlt,PlgBlt和StretchBlt.
如果源和目标设备上下文代表不同的设备,则BitBlt返回错误。要在不同设备的DC之间传输数据,请通过调用GetDIBits将内存位图转换为DIB。要将DIB显示到第二台设备,请调用SetDIBits或StretchDIBits.
ICM:发生blits时不执行颜色管理。
引用文件 #INCLUDE Once
WinGdi.inc(包括Windows.inc)