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:
Please add some!
Sample Code:
Please add some!
Alternative Managed API:
System.Drawing.Graphics.FromHwnd(IntPtr hwnd)
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.