A version of this page is also available for

Windows Embedded CE 6.0 R3


This function creates a memory device context (DC) compatible with the specified device.


HDC CreateCompatibleDC(
  HDC hdc


  • hdc
    [in] Handle to an existing device context.

    If this handle is NULL, the function creates a memory device context compatible with the application's current screen.

Return Value

The handle to a memory device context indicates success.

NULL indicates failure.

To get extended error information, call GetLastError.


A memory device context is a device context that exists only in memory. When the memory device context is created, its display surface is exactly one monochrome pixel wide and one monochrome pixel high.

Before an application can use a memory device context for drawing operations, it must select a bitmap of the correct width and height into the device context. This may be done by using CreateCompatibleBitmap to specify the height, width, and color organization required in the function call.

When a memory device context is created, all attributes are set to typical default values. The memory device context can be use as a typical device context. You can set the attributes to non-default values, obtain the current setting of its attributes, and select pens, brushes and regions into it.

The CreateCompatibleDC function can only be used with devices that support raster operations. An application can determine whether a device supports these operations by calling the GetDeviceCaps function.

When you no longer need the memory device context, call the DeleteDC function to delete it.


Header windows.h
Library coredll.lib
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also


GDI Functions