Graphics.FromHdc 方法

定義

從指定的句柄建立新的 Graphics 到裝置內容。

多載

FromHdc(IntPtr, IntPtr)

從指定的句柄建立新的 Graphics 到裝置內容,以及裝置的句柄。

FromHdc(IntPtr)

從指定的句柄建立新的 Graphics 到裝置內容。

FromHdc(IntPtr, IntPtr)

來源:
Graphics.cs
來源:
Graphics.cs
來源:
Graphics.cs
來源:
Graphics.cs
來源:
Graphics.cs

從指定的句柄建立新的 Graphics 到裝置內容,以及裝置的句柄。

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)

來源:
Graphics.cs
來源:
Graphics.cs
來源:
Graphics.cs
來源:
Graphics.cs
來源:
Graphics.cs

從指定的句柄建立新的 Graphics 到裝置內容。

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

參數

hdc
IntPtr

裝置內容的句柄。

傳回

這個方法會傳回指定裝置內容的新 Graphics

範例

下列程式代碼範例是專為搭配 Windows Forms 使用而設計,而且需要 PaintEventArgse,這是 Paint 事件處理程式的參數。 程式代碼會執行下列動作:

  • hdc 建立內部指標類型變數,並將它設定為窗體圖形對象的裝置內容句柄。

  • 使用 hdc建立新的圖形物件。

  • 使用新的圖形物件繪製矩形(在螢幕上)。

  • 使用 hdc釋放新的圖形物件。

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