Graphics.FromHdc Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Creates a new Graphics from the specified handle to a device context.
Overloads
FromHdc(IntPtr, IntPtr) |
Creates a new Graphics from the specified handle to a device context and handle to a device. |
FromHdc(IntPtr) |
Creates a new Graphics from the specified handle to a device context. |
FromHdc(IntPtr, IntPtr)
- Source:
- Graphics.cs
- Source:
- Graphics.cs
- Source:
- Graphics.cs
Creates a new Graphics from the specified handle to a device context and handle to a device.
public:
static System::Drawing::Graphics ^ FromHdc(IntPtr hdc, IntPtr hdevice);
public static System.Drawing.Graphics FromHdc (IntPtr hdc, IntPtr hdevice);
static member FromHdc : nativeint * nativeint -> System.Drawing.Graphics
Public Shared Function FromHdc (hdc As IntPtr, hdevice As IntPtr) As Graphics
Parameters
- hdc
-
IntPtr
nativeint
Handle to a device context.
- hdevice
-
IntPtr
nativeint
Handle to a device.
Returns
This method returns a new Graphics for the specified device context and device.
Remarks
You should always call the Dispose method to release the Graphics and related resources created by the FromHdc method.
Even if the display device has an associated ICM color profile, GDI+ will not use that profile by default. To enable ICM for a Graphics, construct the Graphics from an HDC after you pass the HDC (and ICM_ON) to the SetICMMode
function. Then any drawing done by the Graphics will be adjusted according to the ICM profile associated with the display device. Enabling ICM will result in slower performance.
The state of the device context (mapping mode, logical unit, and the like) at the time you call FromHdc can affect rendering done by the Graphics.
The device handle is typically used to query specific printer capabilities.
Applies to
FromHdc(IntPtr)
- Source:
- Graphics.cs
- Source:
- Graphics.cs
- Source:
- Graphics.cs
Creates a new Graphics from the specified handle to a device context.
public:
static System::Drawing::Graphics ^ FromHdc(IntPtr hdc);
public static System.Drawing.Graphics FromHdc (IntPtr hdc);
static member FromHdc : nativeint -> System.Drawing.Graphics
Public Shared Function FromHdc (hdc As IntPtr) As Graphics
Parameters
- hdc
-
IntPtr
nativeint
Handle to a device context.
Returns
This method returns a new Graphics for the specified device context.
Examples
The following code example is designed for use with Windows Forms, and it requires PaintEventArgs e
, which is a parameter of the Paint event handler. The code performs the following action:
Creates an internal pointer type variable
hdc
and sets it to the handle to the device context of the graphics object of the form.Creates a new graphics object using
hdc
.Draws a rectangle with the new graphics object (on the screen).
Releases the new graphics object using
hdc
.
public:
void FromHdcHdc( PaintEventArgs^ e )
{
// Get handle to device context.
IntPtr hdc = e->Graphics->GetHdc();
// Create new graphics object using handle to device context.
Graphics^ newGraphics = Graphics::FromHdc( hdc );
// Draw rectangle to screen.
newGraphics->DrawRectangle( gcnew Pen( Color::Red,3.0f ), 0, 0, 200, 100 );
// Release handle to device context and dispose of the // Graphics object
e->Graphics->ReleaseHdc( hdc );
delete newGraphics;
}
private void FromHdcHdc(PaintEventArgs e)
{
// Get handle to device context.
IntPtr hdc = e.Graphics.GetHdc();
// Create new graphics object using handle to device context.
Graphics newGraphics = Graphics.FromHdc(hdc);
// Draw rectangle to screen.
newGraphics.DrawRectangle(new Pen(Color.Red, 3), 0, 0, 200, 100);
// Release handle to device context and dispose of the // Graphics object
e.Graphics.ReleaseHdc(hdc);
newGraphics.Dispose();
}
<System.Security.Permissions.SecurityPermission( _
System.Security.Permissions.SecurityAction.LinkDemand, Flags := _
System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)> _
Private Sub FromHdcHdc(ByVal e As PaintEventArgs)
' Get handle to device context.
Dim hdc As IntPtr = e.Graphics.GetHdc()
' Create new graphics object using handle to device context.
Dim newGraphics As Graphics = Graphics.FromHdc(hdc)
' Draw rectangle to screen.
newGraphics.DrawRectangle(New Pen(Color.Red, 3), 0, 0, 200, 100)
' Release handle to device context and dispose of the Graphics ' object
e.Graphics.ReleaseHdc(hdc)
newGraphics.Dispose()
End Sub
Remarks
You should always call the Dispose method to release the Graphics and related resources created by the FromHdc method.
Even if the display device has an associated ICM color profile, GDI+ will not use that profile by default. To enable ICM for a Graphics, construct the Graphics from an HDC after you pass the HDC (and ICM_ON) to the SetICMMode
function. Then any drawing done by the Graphics will be adjusted according to the ICM profile associated with the display device. Enabling ICM will result in slower performance.
The state of the device context (mapping mode, logical unit, and the like) at the time you call FromHdc can affect rendering done by the Graphics.