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.
A version of this page is also available for
4/8/2010

Overlay surfaces are assumed to be on top of all other screen elements, but when you display multiple overlay surfaces, you need some way to visually organize them.

DirectDraw supports overlay z-ordering to manage the order in which overlays clip each other. Z-order values represent conceptual distances from the primary surface toward the viewer.

They range from 0, which is just on top of the primary surface, to 4 billion, which is as close to the viewer as possible, and no two overlays can share the same z-order.

You set z-order values by calling the IDirectDrawSurface::UpdateOverlayZOrdermethod.

Destination color keys are affected only by the bits on the primary surface, not by overlays occluded by other overlays. Source color keys work on an overlay whether or not a z-order was specified for the overlay.

Overlays without a specified z-order are assumed to have a z-order of 0. Overlays that do not have a specified z-order behave in unpredictable ways when overlaying the same area on the primary surface.

A DirectDraw object does not track the z-orders of overlays displayed by other applications.

Note:
You can ensure proper clipping of multiple overlay surfaces by calling UpdateOverlayZOrderin response to WM_KILLFOCUS messages.
Note:
When you receive this message, set your overlay surface to the rearmost z-order position by calling the UpdateOverlayZOrdermethod with the dwFlagsparameter set to DDOVERZ_SENDTOBACK.