Graphics.ReleaseHdc 方法

定義

釋放先前呼叫這個 GraphicsGetHdc() 方法所取得的裝置內容句柄。

多載

ReleaseHdc()

釋放先前呼叫這個 GraphicsGetHdc() 方法所取得的裝置內容句柄。

ReleaseHdc(IntPtr)

釋放先前呼叫這個 GraphicsGetHdc() 方法所取得的裝置內容句柄。

ReleaseHdc()

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

釋放先前呼叫這個 GraphicsGetHdc() 方法所取得的裝置內容句柄。

C#
public void ReleaseHdc();

實作

備註

GetHdcReleaseHdc 是兩種方法,可讓您取得和釋放 Windows 裝置的句柄。 當您完成 Windows 句柄時,應該一律遵循呼叫 GetHdc,並呼叫 ReleaseHdc

另請參閱

適用於

.NET 10 (package-provided) 和其他版本
產品 版本
.NET 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 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 (package-provided)
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

ReleaseHdc(IntPtr)

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

釋放先前呼叫這個 GraphicsGetHdc() 方法所取得的裝置內容句柄。

C#
public void ReleaseHdc(IntPtr hdc);

參數

hdc
IntPtr

處理先前呼叫這個 GraphicsGetHdc() 方法所取得的裝置內容。

範例

下列程式代碼範例是專為搭配 Windows Forms 使用而設計,而且需要 PaintEventArgse,這是 Paint 事件處理程式的參數。 此範例說明呼叫 Windows GDI 函式來執行與 GDI+ Graphics 方法相同的工作。 程式代碼會執行下列動作:

  • 定義 Windows DLL 檔案的互操作性 DllImportAttribute 屬性 gdi32.dll。 此 DLL 包含所需的 GDI 函式,並將該 DLL 中的 Rectangle 函式定義為外部。

  • 建立紅色畫筆。

  • 使用畫筆時,使用 GDI+ DrawRectangle 方法將矩形繪製到畫面。

  • 定義內部指標類型變數 hdc,並將其值設定為表單裝置內容的句柄。

  • 使用 GDI Rectangle 函式將矩形繪製到畫面。

  • 釋放以 hdc 參數表示的裝置內容。

C#
[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
private static extern bool Rectangle2(
    IntPtr hdc,
    int ulCornerX, int ulCornerY,
    int lrCornerX, int lrCornerY);

private void GetHdcForGDI2(PaintEventArgs e)
{
    // Create pen.
    Pen redPen = new Pen(Color.Red, 1);

    // Draw rectangle with GDI+.
    e.Graphics.DrawRectangle(redPen, 10, 10, 100, 50);

    // Get handle to device context.
    IntPtr hdc = e.Graphics.GetHdc();

    // Draw rectangle with GDI using default pen.
    Rectangle2(hdc, 10, 70, 110, 120);

    // Release handle to device context.
    e.Graphics.ReleaseHdc(hdc);
}

備註

裝置內容是以 GDI 為基礎的 Windows 結構,可定義一組圖形物件及其相關聯的屬性,以及影響輸出的圖形模式。

GetHdcReleaseHdc 方法的呼叫必須以配對顯示。 在 GetHdcReleaseHdc 方法組的範圍期間,您通常只會呼叫 GDI 函式。 在該範圍內呼叫產生 hdc 參數之 Graphics 的 GDI+ 方法失敗,併發生 ObjectBusy 錯誤。 此外,GDI+ 會忽略後續作業中對 hdc 參數 Graphics 所做的任何狀態變更。

適用於

.NET 10 (package-provided) 和其他版本
產品 版本
.NET 8 (package-provided), 9 (package-provided), 10 (package-provided)
.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 (package-provided)
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10