Graphics.ReleaseHdc メソッド

定義

この GraphicsGetHdc() メソッドを前回呼び出したときに取得したデバイス コンテキスト ハンドルを解放します。

オーバーロード

ReleaseHdc()

この GraphicsGetHdc() メソッドを前回呼び出したときに取得したデバイス コンテキスト ハンドルを解放します。

ReleaseHdc(IntPtr)

この GraphicsGetHdc() メソッドを前回呼び出したときに取得したデバイス コンテキスト ハンドルを解放します。

ReleaseHdc()

ソース:
Graphics.cs
ソース:
Graphics.cs
ソース:
Graphics.cs

この GraphicsGetHdc() メソッドを前回呼び出したときに取得したデバイス コンテキスト ハンドルを解放します。

public:
 virtual void ReleaseHdc();
public void ReleaseHdc ();
abstract member ReleaseHdc : unit -> unit
override this.ReleaseHdc : unit -> unit
Public Sub ReleaseHdc ()

実装

注釈

GetHdcReleaseHdc は、Windows デバイスのハンドルを取得および解放できる 2 つの方法です。 Windows ハンドルが完了したら、常に の GetHdc 呼び出しに従って を ReleaseHdc 呼び出す必要があります。

こちらもご覧ください

適用対象

ReleaseHdc(IntPtr)

ソース:
Graphics.cs
ソース:
Graphics.cs
ソース:
Graphics.cs

この GraphicsGetHdc() メソッドを前回呼び出したときに取得したデバイス コンテキスト ハンドルを解放します。

public:
 void ReleaseHdc(IntPtr hdc);
public void ReleaseHdc (IntPtr hdc);
member this.ReleaseHdc : nativeint -> unit
Public Sub ReleaseHdc (hdc As IntPtr)

パラメーター

hdc
IntPtr

nativeint

GraphicsGetHdc() メソッドを前回呼び出したときに取得したデバイス コンテキストを識別するハンドル。

次のコード例は、Windows フォームで使用するように設計されており、イベント ハンドラーのPaintパラメーターである が必要PaintEventArgseです。 この例では、GDI+ Graphics メソッドと同じタスクを実行するために Windows GDI 関数を呼び出す方法を示します。 コードは、次のアクションを実行します。

  • Windows DLL ファイル gdi32.dll の相互運用性 DllImportAttribute 属性を定義します。 この DLL には目的の GDI 関数が含まれており、その DLL 内の関数を Rectangle 外部として定義します。

  • 赤いペンを作成します。

  • ペンを使用して、GDI+ DrawRectangle メソッドを使用して画面に四角形を描画します。

  • 内部ポインター型変数 hdc を定義し、その値をフォームのデバイス コンテキストのハンドルに設定します。

  • GDI Rectangle 関数を使用して、画面に四角形を描画します。

  • パラメーターで表されるデバイス コンテキストを hdc 解放します。

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

public:
   void GetHdcForGDI2( PaintEventArgs^ e )
   {
      // Create pen.
      Pen^ redPen = gcnew Pen( Color::Red,1.0f );

      // 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 );
   }
[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);
}
<System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")> _
Private Shared Function Rectangle2(ByVal hdc As IntPtr, _
ByVal ulCornerX As Integer, ByVal ulCornerY As Integer, ByVal lrCornerX As Integer, _
ByVal lrCornerY As Integer) As Boolean
End Function

<System.Security.Permissions.SecurityPermission( _
System.Security.Permissions.SecurityAction.LinkDemand, Flags:= _
System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)> _
Private Sub GetHdcForGDI2(ByVal e As PaintEventArgs)

    ' Create pen.
    Dim redPen As New Pen(Color.Red, 1)

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

    ' Get handle to device context.
    Dim hdc As IntPtr = 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)
End Sub

注釈

デバイス コンテキストは、一連のグラフィカル オブジェクトとそれに関連付けられた属性、および出力に影響を与えるグラフィカル モードを定義する GDI に基づく Windows 構造体です。

メソッドと ReleaseHdc メソッドのGetHdc呼び出しは、ペアで指定する必要があります。 メソッドと ReleaseHdc メソッドのペアのGetHdcスコープ中は、通常、GDI 関数の呼び出しのみを行います。 パラメーターを生成hdcした の GDI+ メソッドに対して行われたそのスコープ内のGraphics呼び出しは、エラーでObjectBusy失敗します。 また、GDI+ は、後続の操作で パラメーターの に対して Graphics 行われたすべての状態変更を hdc 無視します。

適用対象