The BITMAP structure defines the height, width, color format, and bit values of a logical bitmap.
typedef struct tagBITMAP {
short bmType;
short bmWidth;
short bmHeight;
short bmWidthBytes;
BYTE bmPlanes;
BYTE bmBitsPixel;
LPSTR bmBits;
} BITMAP;
The BITMAP structure has the following fields:
Field | Description |
bmType | Specifies the bitmap type. For logical bitmaps, the bmType field must be zero. | |
bmWidth | Specifies the width of the bitmap (in pixels). The width must be greater than zero. | |
bmHeight | Specifies the height of the bitmap (in raster lines). The height must be greater than zero. | |
bmWidthBytes | Specifies the number of bytes in each raster line. This value must be an even number since the graphics device interface (GDI) assumes that the bit values of a bitmap form an array of integer (two-byte) values. In other words, bmWidthBytes ´ 8 must be the next multiple of 16 greater than or equal to the bmWidth field. | |
bmPlanes | Points to the number of color planes in the bitmap. | |
bmBitsPixel | Points to the number of adjacent color bits on each plane needed to define a pixel. | |
bmBits | Points to the location of the bit values for the bitmap. The bmBits field must be a long pointer to an array of character (one-byte) values. |
The currently used bitmap formats are monochrome and color. The monochrome bitmap uses a one-bit, one-plane format. Each scan is a multiple of 16 bits.
Scans are organized as follows for a monochrome bitmap of height n:
Scan 0
Scan 1
.
.
.
Scan n-2
Scan n-1
The pixels on a monochrome device are either black or white. If the corresponding bit in the bitmap is 1, the pixel is turned on (white); if the corresponding bit in the bitmap is zero, the pixel is turned off (black).
All devices that have the RC_BITBLT bit set in the device capabilities support bitmaps.
Each device has its own unique color format. In order to transfer a bitmap from one device to another, use GetDIBits and SetDIBits.
The CreateBitmapIndirect and GetObject functions in Chapter 4, “Functions Directory.”