CreateBitmap (Compact 2013)

3/28/2014

This function creates a bitmap with the specified width, height, and bit depth.

Syntax

HBITMAP CreateBitmap(
  int nWidth, 
  int nHeight, 
  UINT cPlanes, 
  UINT cBitsPerPel, 
  CONST VOID* lpvBits
); 

Parameters

  • nWidth
    [in] Specifies the bitmap width, in pixels.
  • nHeight
    [in] Specifies the bitmap height, in pixels.
  • cPlanes
    [in] Specifies the number of color planes used by the device.

    The value of this parameter must be 1.

  • cBitsPerPel
    [in] Specifies the number of bits required to identify the color of a single pixel.
  • lpvBits
    [in] Long void pointer to an array of color data used to set the colors in a rectangle of pixels.

    Each scan line in the rectangle must be word aligned (scan lines that are not word aligned must be padded with zeros).

    If this parameter is NULL, the new bitmap is undefined.

Return Value

A handle to a bitmap indicates success.

NULL indicates failure.

To get extended error information, call GetLastError.

Code Example

The following code example uses CreateBitmap to make a copy of a bitmap.

Note

To make the following code example easier to read, error checking is not included. This code example should not be used in a release configuration unless it has been modified to include secure error handling.

HBITMAP CopyBitmap( HBITMAP hbm) {
    HDC hdcSrc = CreateCompatibleDC(NULL);
    HDC hdcDst = CreateCompatibleDC(NULL);
    HBITMAP hbmOld, hbmOld2, hbmNew;
    BITMAP bm;
    GetObject(hbm, sizeof(bm), &bm);
    hbmOld = SelectObject(hdcSrc, hbm);
    hbmNew = CreateBitmap( bm.bmWidth, bm.bmHeight, bm.bmPlanes,
bm.bmBitsPixel,
            NULL);
    hbmOld2 = SelectObject(hdcDst, hbmNew);
    BitBlt(hdcDst, 0, 0, bm.bmWidth, bm.bmHeight, hdcSrc, 0, 0, SRCCOPY);
    SelectObject(hdcSrc, hbmOld);
    DeleteDC(hdcSrc);
    DeleteDC(hdcDst);
    return hbmNew;
}

Remarks

After a bitmap is created, it can be selected into a device context by calling the SelectObject function.

While the CreateBitmap function can be used to create color bitmaps, for performance reasons applications should use CreateBitmap to create monochrome bitmaps and CreateCompatibleBitmap to create color bitmaps.

When a color bitmap returned from CreateBitmap is selected into a device context, the system must ensure that the bitmap matches the format of the device context it is being selected into.

Because CreateCompatibleBitmap takes a device context, it returns a bitmap that has the same format as the specified device context. Because of this, subsequent calls to SelectObject are faster than with a color bitmap returned from CreateBitmap.

If the bitmap is monochrome, zeros represent the foreground color and ones represent the background color for the destination device context.

If an application sets the nWidth or nHeight parameters to zero, CreateBitmap returns the handle to a 1- by 1-pixel, monochrome bitmap.

When you no longer need the bitmap, call the DeleteObject function to delete it.

Requirements

Header

windows.h

Library

coredll.lib

See Also

Reference

GDI Functions
CreateCompatibleBitmap
DeleteObject
SelectObject