Search
Module:
Directory

   Desktop Functions:

   Smart Device Functions:


Show Recent Changes
Subscribe (RSS)
Misc. Pages
Comments
FAQ
Helpful Tools
Playground
Suggested Reading
Website TODO List
Download Visual Studio Add-In

GetDCEx (user32)
 
.
Summary

C# Signature:

  [DllImport("user32.dll")]
static extern IntPtr GetDCEx(IntPtr hWnd, IntPtr hrgnClip, DeviceContextValues flags);

VB Signature:

<DllImport("user32.dll")> _
Private Shared Function GetDCEx(ByVal hWnd As IntPtr, ByVal hrgnClip As IntPtr, ByVal DeviceContextValues As Integer) As IntPtr
End Function

or

Private Declare Function Lib "user32.dll" GetDCEx(ByVal hWnd As IntPtr, ByVal hrgnClip As IntPtr, ByVal DeviceContextValues As Integer) As IntPtr

User-Defined Types:

/// <summary>Values to pass to the GetDCEx method.</summary>
[Flags()]
protected enum DeviceContextValues : uint
{
    /// <summary>DCX_WINDOW: Returns a DC that corresponds to the window rectangle rather
    /// than the client rectangle.</summary>
    Window       = 0x00000001,
    /// <summary>DCX_CACHE: Returns a DC from the cache, rather than the OWNDC or CLASSDC
    /// window. Essentially overrides CS_OWNDC and CS_CLASSDC.</summary>
    Cache        = 0x00000002,
    /// <summary>DCX_NORESETATTRS: Does not reset the attributes of this DC to the
    /// default attributes when this DC is released.</summary>
    NoResetAttrs     = 0x00000004,
    /// <summary>DCX_CLIPCHILDREN: Excludes the visible regions of all child windows
    /// below the window identified by hWnd.</summary>
    ClipChildren     = 0x00000008,
    /// <summary>DCX_CLIPSIBLINGS: Excludes the visible regions of all sibling windows
    /// above the window identified by hWnd.</summary>
    ClipSiblings     = 0x00000010,
    /// <summary>DCX_PARENTCLIP: Uses the visible region of the parent window. The
    /// parent's WS_CLIPCHILDREN and CS_PARENTDC style bits are ignored. The origin is
    /// set to the upper-left corner of the window identified by hWnd.</summary>
    ParentClip       = 0x00000020,
    /// <summary>DCX_EXCLUDERGN: The clipping region identified by hrgnClip is excluded
    /// from the visible region of the returned DC.</summary>
    ExcludeRgn       = 0x00000040,
    /// <summary>DCX_INTERSECTRGN: The clipping region identified by hrgnClip is
    /// intersected with the visible region of the returned DC.</summary>
    IntersectRgn     = 0x00000080,
    /// <summary>DCX_EXCLUDEUPDATE: Unknown...Undocumented</summary>
    ExcludeUpdate    = 0x00000100,
    /// <summary>DCX_INTERSECTUPDATE: Unknown...Undocumented</summary>
    IntersectUpdate  = 0x00000200,
    /// <summary>DCX_LOCKWINDOWUPDATE: Allows drawing even if there is a LockWindowUpdate
    /// call in effect that would otherwise exclude this window. Used for drawing during
    /// tracking.</summary>
    LockWindowUpdate = 0x00000400,
    /// <summary>DCX_VALIDATE When specified with DCX_INTERSECTUPDATE, causes the DC to
    /// be completely validated. Using this function with both DCX_INTERSECTUPDATE and
    /// DCX_VALIDATE is identical to using the BeginPaint function.</summary>
    Validate     = 0x00200000,
}

Notes:

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 GDI functions to draw in the DC.

This function is an extension to the GetDC function, which gives an application more control over how and whether clipping occurs in the client area.

Unless the display DC belongs to a window class, the ReleaseDC function must be called to release the DC after painting. Also, ReleaseDC must be called from the same thread that called GetDCEx. The number of DCs is limited only by available memory.

<param name="hWnd">

Handle to the window whose DC is to be retrieved. If this value is NULL, GetDCEx retrieves the DC for the entire screen.</param>

<param name="hrgnClip">

Specifies a clipping region that may be combined with the visible region of the DC. If the value of flags is DCX_INTERSECTRGN or DCX_EXCLUDERGN, then the operating system assumes ownership of the region and will automatically delete it when it is no longer needed. In this case, applications should not use the region—not even delete it—after a successful call to GetDCEx.</param>

<param name="flags">

Specifies how the DC is created. This parameter can be one or more of the DeviceContextValues enumeration.</param>

If the function succeeds, the return value is the handle to the DC for the specified window.If the function fails, the return value is NULL.</para>

An invalid value for the hWnd parameter will cause the function to fail.

Windows NT/2000/XP: To get extended error information, call GetLastError.

Unless the display DC belongs to a window class, the ReleaseDC function must be called to release the DC after painting. Also, ReleaseDC must be called from the same thread that called GetDCEx. The number of "DCs" is limited only by available memory.

Tips & Tricks:

Please add some!

Sample Code:

Please add some!!

Alternative Managed API:

Do you know one? Please contribute it!

Documentation
GetDCEx on MSDN

Please edit this page!

Do you have...

  • helpful tips or sample code to share for using this API in managed code?
  • corrections to the existing content?
  • variations of the signature you want to share?
  • additional languages you want to include?

Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).

 
Access PInvoke.net directly from VS:
Terms of Use
Edit This Page
Find References
Show Printable Version
Revisions