ReleaseDC (user32)
Last changed: -90.145.120.103

.
Summary
Releases a device context, freeing it for use by other applications.

C# Signature:

/// <summary>Releases a device context (DC), freeing it for use by other applications.</summary>
/// <remarks><para>The effect of the ReleaseDC function depends on the type of DC. It
/// frees only common and window DCs. It has no effect on class or private DCs.</para>
/// <para>The application must call the ReleaseDC function for each call to the
/// GetWindowDC function and for each call to the GetDC function that retrieves a
/// common DC. </para><para>An application cannot use the ReleaseDC function to release
/// a DC that was created by calling the CreateDC function; instead, it must use the
/// DeleteDC function. ReleaseDC must be called from the same thread that called
/// GetDC.</para></remarks>
/// <param name="hWnd">Handle to the window whose DC is to be released.</param>
/// <param name="hDC">Handle to the DC to be released.</param>
/// <returns>The return value indicates whether the DC was released. If the DC was
/// released, the return value is 1. If the DC was not released, the return value is
/// zero.</returns>
[DllImport("user32.dll")]
static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);

VB Signature:

Declare Function ReleaseDC Lib "user32.dll" _
   (hWnd As IntPtr, hDC As IntPtr) As Integer

Notes:

The application must call the ReleaseDC function for each call to the GetWindowDC function and for each call to the GetDC function that retrieves a common DC.

An application cannot use the ReleaseDC function to release a DC that was created by calling the CreateDC function; instead, it must use the DeleteDC function. ReleaseDC must be called from the same thread that called GetDC.

Tips & Tricks:

Using managed DC functions for API's that require the DC work almost just as well as the API DC functions themselves.

Sample Code:

See TextOut or GetTextExtentPoint for a sample of using DC's in C# managed code.

Alternative Managed API:

Graphics.GetHdc()

Graphics.ReleaseHdc()

Documentation
ReleaseDC on MSDN

8-5-06 Update by Gabriel T. Sharp (osirisgothra@hotmail.com)