Microsoft Windows CE 3.0  

Color Fills

Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

In order to fill all or part of a surface with a single color, you can use the IDirectDrawSurface5::Bltmethod with the DDBLT_COLORFILL flag. This technique allows you to quickly erase an area or draw a solid-colored background.

The following example fills an entire surface with the color blue, after obtaining the numerical value for blue from the pixel format:

/* It is assumed that lpDDS is a valid pointer to
an IDirectDrawSurface5 interface. */ HRESULT ddrval; DDPIXELFORMAT
ddpf; ddpf.dwSize = sizeof(ddpf); if
(SUCCEEDED(lpDSS->GetPixelFormat(&ddpf)) { DDBLTFX ddbltfx;
ddbltfx.dwSize = sizeof(ddbltfx); ddbltfx.dwFillColor =
ddpf.dwBBitMask; // Pure blue ddrval = lpDDS->Blt( NULL, //
Destination is entire surface NULL, // No source surface NULL, //
No source rectangle DDBLT_COLORFILL, &ddbltfx); switch(ddrval)
{ case DDERR_WASSTILLDRAWING: . . . case DDERR_SURFACELOST: . . .
case DD_OK: . . . default: } }


 Last updated on Tuesday, May 18, 2004

© 2004 Microsoft Corporation. All rights reserved.