Desktop Functions:

   Smart Device Functions:

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

Terms of Use
Privacy Policy
getdc (user32)
The GetDC function retrieves a handle to a 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. The device context is an opaque data structure, whose values are used internally by GDI. The GetDCEx function is an extension to GetDC, which gives an application more control over how and whether clipping occurs in the client area.

C# Signature:

static extern IntPtr GetDC(IntPtr hWnd);

VB.NET Signature:

<DllImport("user32.dll")> _
Private Shared Function GetDC(ByVal hwnd As IntPtr) As IntPtr
End Function

User-Defined Types:



Given the level of transparency provided by the System.Drawing.Graphics class, it is probably better to use that instead of GetDC.

Remember, if you use GetDC manually without the Graphics class, you must call ReleaseDC.

This method can also be declared using an IntPtr instead of a HandleRef. Using a HandleRef ensures that the window will not be destroyed/GCed while the function is executing.

Tips & Tricks:

To get the DC for a specific display monitor, use the EnumDisplayMonitors and CreateDC functions.

Sample Code:

Please add some!

Alternative Managed API:

System.Drawing.Graphics.FromHwnd(IntPtr hwnd)


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 directly from VS:
Terms of Use
Edit This Page
Find References
Show Printable Version