Type a page name and press Enter. You'll jump to the page if it exists, or you can create it if it doesn't.
To create a page in a module other than user32, prefix the name with the module name and a period.
<DllImport("user32.dll")> _
Private Shared Function GetDCEx(ByVal hWnd As IntPtr, ByVal hrgnClip As IntPtr, ByVal DeviceContextValues As DeviceContextValues) As IntPtr
Private Shared Function GetDC(ByVal hwnd As IntPtr) As IntPtr
End Function
VB Signature:
Private Declare Function Lib "user32.dll" GetDCEx(ByVal hWnd As IntPtr, ByVal hrgnClip As IntPtr, ByVal DeviceContextValues As DeviceContextValues) As IntPtr
Retrieves a handle to a display device context (DC) for the client area of a specified window or for the entire screen.
None.
You can use the returned handle in subsequent GDI functions to draw in the DC.
Notes:
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.
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.
An IntPtr is a pointer to a memory location (unmanaged) that adapts to the platform it is running on (64-bit, etc.) UNLIKE a standard int/Integer. You should always use this type for unmanaged calls that require it, even though an int will appear to work on your development machine.
1/13/2008 4:00:13 AM - Damon Carr-72.43.165.29
A HandleRef is essentially an IntPtr to a handle and a reference to the object the handle belongs to. Using HandleRef prevents the GC from collecting the object until the native method is done with it.
7/22/2009 9:41:44 AM - -212.251.139.186
A HandleRef is essentially an IntPtr to a handle and a reference to the object the handle belongs to. Using HandleRef prevents the GC from collecting the object until the native method is done with it.
7/22/2009 9:41:44 AM - -212.251.139.186
The GetDCEx API
5/1/2009 12:47:12 PM - -84.13.75.196
The GetDCEx API
5/1/2009 12:47:12 PM - -84.13.75.196
The GetDCEx API
5/1/2009 12:47:12 PM - -84.13.75.196
Used with the GetDCEx function
10/31/2012 5:22:43 PM - -74.212.46.220
The GetDCEx API
5/1/2009 12:47:12 PM - -84.13.75.196
The EnumDisplayMonitors API
6/15/2020 1:24:20 PM - -165.214.11.71
Creates a device context for a device using the specified name.
10/27/2016 8:27:49 AM - -202.74.138.1
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).