bitblt函数怎么用啊?

如题所述

  bitblt:
  该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。
  用法参数:
  hDestDC:指向目标设备环境的句柄。
  x:指定目标矩形区域左上角的X轴逻辑坐标。
  y:指定目标矩形区域左上角的Y轴逻辑坐标。
  nWidth:指定源在目标矩形区域的逻辑宽度。
  nHeight:指定源在目标矩形区域的逻辑高度。
  hSrcDC:指向源设备环境的句柄。
  xSrc:指定源矩形区域左上角的X轴逻辑坐标。
  ySrc:指定源矩形区域左上角的Y轴逻辑坐标。
  dwRop:指定光栅操作代码。这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的颜色。
  下面列出了一些常见的光栅操作代码:
  BLACKNESS:表示使用与物理调色板的索引0相关的色彩来填充目标矩形区域,(对缺省的物理调色板而言,该颜色为黑色)。
  DSTINVERT:表示使目标矩形区域颜色取反。
  MERGECOPY:表示使用布尔型的AND(与)操作符将源矩形区域的颜色与特定模式组合一起。
  MERGEPAINT:通过使用布尔型的OR(或)操作符将反向的源矩形区域的颜色与目标矩形区域的颜色合并。
  NOTSRCCOPY:将源矩形区域颜色取反,于拷贝到目标矩形区域。
  NOTSRCERASE:使用布尔类型的OR(或)操作符组合源和目标矩形区域的颜色值,然后将合成的颜色取反。
  PATCOPY:将特定的模式拷贝到目标位图上。
  PATPAINT:通过使用布尔OR(或)操作符将源矩形区域取反后的颜色值与特定模式的颜色合并。然后使用OR(或)操作符将该操作的结果与目标矩形区域内的颜色合并。
  PATINVERT:通过使用XOR(异或)操作符将源和目标矩形区域内的颜色合并。
  SRCAND:通过使用AND(与)操作符来将源和目标矩形区域内的颜色合并。
  SRCCOPY:将源矩形区域直接拷贝到目标矩形区域。
  SRCERASE:通过使用AND(与)操作符将目标矩形区域颜色取反后与源矩形区域的颜色值合并。
  SRCINVERT:通过使用布尔型的XOR(异或)操作符将源和目标矩形区域的颜色合并。
  SRCPAINT:通过使用布尔型的OR(或)操作符将源和目标矩形区域的颜色合并。
  WHITENESS:使用与物理调色板中索引1有关的颜色填充目标矩形区域。(对于缺省物理调色板来说,这个颜色就是白色)。
  dwRop Values
  From wingdi.h:
  #define BLACKNESS 0x42
  #define DSTINVERT 0x550009
  #define MERGECOPY 0xC000CA
  #define MERGEPAINT 0xBB0226
  #define NOTSRCCOPY 0x330008
  #define NOTSRCERASE 0x1100A6
  #define PATCOPY 0xF00021
  #define PATINVERT 0x5A0049
  #define PATPAINT 0xFB0A09
  #define SRCAND 0x8800C6
  #define SRCCOPY 0xCC0020
  #define SRCERASE 0x440328
  #define SRCINVERT 0x660046
  #define SRCPAINT 0xEE0086
  #define WHITENESS 0xFF0062
  
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-01-27
specified source device context into a destination device context.

Syntax

Parameters

hdcDest [in]

A handle to the destination device context.

nXDest [in]

The x-coordinate, in logical units, of the upper-left corner of the destination rectangle.

nYDest [in]

The y-coordinate, in logical units, of the upper-left corner of the destination rectangle.

nWidth [in]

The width, in logical units, of the source and destination rectangles.

nHeight [in]

The height, in logical units, of the source and the destination rectangles.

hdcSrc [in]

A handle to the source device context.

nXSrc [in]

The x-coordinate, in logical units, of the upper-left corner of the source rectangle.

nYSrc [in]

The y-coordinate, in logical units, of the upper-left corner of the source rectangle.

dwRop [in]

A raster-operation code. These codes define how the color data for the source rectangle is to be combined with the color data for the destination rectangle to achieve the final color. The following list shows some common raster operation codes.

Value Meaning

BLACKNESS

CAPTUREBLT

DSTINVERT

MERGECOPY

MERGEPAINT

NOMIRRORBITMAP

NOTSRCCOPY

NOTSRCERASE

PATCOPY

PATINVERT

PATPAINT

SRCAND

SRCCOPY

SRCERASE

SRCINVERT

SRCPAINT

WHITENESS

Return value

If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks

BitBlt only does clipping on the destination DC. If a rotation or shear transformation is in effect in the source device context, BitBlt returns an error. If other transformations exist in the source device context (and a matching transformation is not in effect in the destination device context), the rectangle in the destination device context is stretched, compressed, or rotated, as necessary. If the color formats of the source and destination device contexts do not match, the BitBlt function converts the source color format to match the destination format. When an enhanced metafile is being recorded, an error occurs if the source device context identifies an enhanced-metafile device context. Not all devices support the BitBlt function. For more information, see the RC_BITBLT raster capability entry in the GetDeviceCaps function as well as the following functions: MaskBlt, PlgBlt, and StretchBlt. BitBlt returns an error if the source and destination device contexts represent different devices. To transfer data between DCs for different devices, convert the memory bitmap to a DIB by calling GetDIBits. To display the DIB to the second device, call SetDIBits or StretchDIBits. ICM: No color management is performed when blits occur.

Examples

For an example, see Capturing an Image.

Requirements

Minimum supported client Windows 2000 Professional

Minimum supported server Windows 2000 Server

Header Wingdi.h (include Windows.h)

Library Gdi32.lib

DLL Gdi32.dll

See also

Bitmaps Overview Bitmap Functions GetDeviceCaps GetDIBits MaskBlt PlgBlt SetDIBits StretchBlt StretchDIBits
相似回答