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

This function retrieves a handle to a display device context (DC) for the client area of a specified window or for the entire screen. You can use the returned handle in subsequent graphics display interface (GDI) functions to draw in the device context.

GetDCExis an extension to the GetDCfunction, which gives an application more control over how and whether clipping occurs in the client area.

Syntax

HDC GetDCEx( 
  HWND 
hWnd, 
  HRGN 
hrgnClip, 
  DWORD
 flags
);

Parameters

hWnd

Handle to the window whose device context is to be retrieved.

If this value is NULL, GetDCExretrieves the device context for the entire screen.

hrgnClip

Specifies a clipping region that may be combined with the visible region of the device context.

flags

Specifies how the device context is created.

This parameter can be a combination of the following values.

Value Description

DCX_WINDOW

Returns a device context corresponding to the window rectangle rather than the client rectangle.

DCX_CACHE

Returns a device context from the cache, rather than the OWNDC or CLASSDC window. Essentially overrides CS_OWNDC and CS_CLASSDC.

DCX_PARENTCLIP

Uses the visible region of the parent window.

The parent's WS_CLIPCHILDREN and CS_PARENTDC style bits are ignored.

The device context origin is set to the upper-left corner of the window identified by hWnd.

DCX_CLIPSIBLINGS

Excludes the visible regions of all sibling windows above the window identified by hWnd.

DCX_CLIPCHILDREN

Excludes the visible regions of all child windows below the window identified by hWnd.

DCX_NORESETATTRS

Does not reset the attributes of this device context to the default attributes when this device context is released.

DCX_EXCLUDERGN

The clipping region identified by hrgnClipis excluded from the visible region of the returned device context.

DCX_EXCLUDEUPDATE

Returns a region that excludes the window's update region.

DCX_INTERSECTRGN

The clipping region identified by hrgnClipis intersected with the visible region of the returned device context.

DCX_INTERSECTUPDATE

Returns a region that includes the window's update region.

DCX_VALIDATE

When specified with DCX_INTERSECTUPDATE, causes the device context to be completely validated.

Using this function with both DCX_INTERSECTUPDATE and DCX_VALIDATE is identical to using the BeginPaintfunction.

Return Value

The handle of the device context for the specified window indicates success. NULL indicates failure. An invalid value for the hWndparameter causes the function to fail.

To get extended error information, call GetLastError.

Remarks

The flagsparameter supports the following values: DCX_WINDOW, DCX_CACHE, DCX_CLIPCHILDREN, DCX_CLIPSIBLINGS, DCX_EXCLUDERGN, DCX_INTERSECTRGN, DCX_EXCLUDEUPDATE, and DCX_INTERSECTUPDATE.

Unlike a DC returned by GetDC, a DC returned by this function is not kept in sync with its associated window.

If the window moves or is resized, unexpected drawing results can occur. The chance of error is reduced if an application gets a DC, draws, and then releases that DC.

Unless the display device context belongs to a window class, the ReleaseDCfunction must be called to release the device context after painting.

Because only five common device contexts are available at a time, failure to release a device context can prevent other applications from accessing a device context.

The function returns a device context belonging to the window's class if CS_CLASSDC, CS_OWNDC or CS_PARENTDC was specified as a style in the WNDCLASSstructure when the class was registered.

Requirements

Header winuser.h
Library coredll.lib, Winmgr.lib
Windows Embedded CE Windows CE 2.10 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also