Graphics.FromHdc 方法

定义

创建从指定句柄到设备上下文的新 Graphics

重载

FromHdc(IntPtr, IntPtr)

创建从指定句柄到设备上下文和设备句柄的新 Graphics

FromHdc(IntPtr)

创建从指定句柄到设备上下文的新 Graphics

FromHdc(IntPtr, IntPtr)

Source:
Graphics.cs
Source:
Graphics.cs
Source:
Graphics.cs
Source:
Graphics.cs
Source:
Graphics.cs

创建从指定句柄到设备上下文和设备句柄的新 Graphics

C#
public static System.Drawing.Graphics FromHdc (IntPtr hdc, IntPtr hdevice);

参数

hdc
IntPtr

设备上下文的句柄。

hdevice
IntPtr

设备句柄。

返回

此方法为指定的设备上下文和设备返回新的 Graphics

注解

应始终调用 Dispose 方法来释放 FromHdc 方法创建的 Graphics 和相关资源。

即使显示设备具有关联的 ICM 颜色配置文件,GDI+ 也不会默认使用该配置文件。 若要为 Graphics启用 ICM,请将 HDC (和 ICM_ON) 传递给 SetICMMode 函数后,从 HDC 构造 Graphics。 然后,Graphics 完成的任何绘图都将根据与显示设备关联的 ICM 配置文件进行调整。 启用 ICM 将导致性能降低。

调用 FromHdc 时设备上下文(映射模式、逻辑单元等)的状态可能会影响 Graphics完成的呈现。

设备句柄通常用于查询特定打印机功能。

适用于

.NET 9 和其他版本
产品 版本
.NET 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

FromHdc(IntPtr)

Source:
Graphics.cs
Source:
Graphics.cs
Source:
Graphics.cs
Source:
Graphics.cs
Source:
Graphics.cs

创建从指定句柄到设备上下文的新 Graphics

C#
public static System.Drawing.Graphics FromHdc (IntPtr hdc);

参数

hdc
IntPtr

设备上下文的句柄。

返回

此方法为指定的设备上下文返回新的 Graphics

示例

下面的代码示例设计用于 Windows 窗体,它需要 PaintEventArgse,这是 Paint 事件处理程序的参数。 该代码执行以下操作:

  • hdc 创建内部指针类型变量,并将其设置为窗体图形对象的设备上下文的句柄。

  • 使用 hdc创建新的图形对象。

  • 使用新图形对象绘制一个矩形(在屏幕上)。

  • 使用 hdc释放新的图形对象。

C#
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();
}

注解

应始终调用 Dispose 方法来释放 FromHdc 方法创建的 Graphics 和相关资源。

即使显示设备具有关联的 ICM 颜色配置文件,GDI+ 也不会默认使用该配置文件。 若要为 Graphics启用 ICM,请将 HDC (和 ICM_ON) 传递给 SetICMMode 函数后,从 HDC 构造 Graphics。 然后,Graphics 完成的任何绘图都将根据与显示设备关联的 ICM 配置文件进行调整。 启用 ICM 将导致性能降低。

调用 FromHdc 时设备上下文(映射模式、逻辑单元等)的状态可能会影响 Graphics完成的呈现。

适用于

.NET 9 和其他版本
产品 版本
.NET 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9