Graphics.ReleaseHdc Metoda

Definice

Uvolní popisovač kontextu zařízení získaný předchozím voláním GetHdc() metody tohoto Graphicsobjektu .

Přetížení

ReleaseHdc()

Uvolní popisovač kontextu zařízení získaný předchozím voláním GetHdc() metody tohoto Graphicsobjektu .

ReleaseHdc(IntPtr)

Uvolní popisovač kontextu zařízení získaný předchozím voláním GetHdc() metody tohoto Graphicsobjektu .

ReleaseHdc()

Zdroj:
Graphics.cs
Zdroj:
Graphics.cs
Zdroj:
Graphics.cs

Uvolní popisovač kontextu zařízení získaný předchozím voláním GetHdc() metody tohoto Graphicsobjektu .

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

Implementuje

Poznámky

GetHdc a ReleaseHdc jsou dvě metody, které umožňují získat a uvolnit popisovač pro zařízení s Windows. Po dokončení práce s popisovačem ReleaseHdc Windows byste měli vždy sledovat volání GetHdc na adresu .

Viz také

Platí pro

ReleaseHdc(IntPtr)

Zdroj:
Graphics.cs
Zdroj:
Graphics.cs
Zdroj:
Graphics.cs

Uvolní popisovač kontextu zařízení získaný předchozím voláním GetHdc() metody tohoto Graphicsobjektu .

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

Parametry

hdc
IntPtr

nativeint

Popisovač pro kontext zařízení získaný předchozím voláním GetHdc() metody tohoto Graphicsobjektu .

Příklady

Následující příklad kódu je navržený pro použití s model Windows Forms a vyžaduje PaintEventArgse, což je parametr obslužné rutiny Paint události. Příklad znázorňuje volání funkce Windows GDI, která provede stejnou úlohu jako metoda GDI+ Graphics . Kód provede následující akce:

  • Definuje atribut interoperability DllImportAttribute pro soubor knihovny DLL systému Windows gdi32.dll. Tato knihovna DLL obsahuje požadovanou funkci rozhraní GDI a definuje Rectangle funkci v této knihovně DLL jako externí.

  • Vytvoří červené pero.

  • Perem nakreslí na obrazovku obdélník pomocí metody GDI+ DrawRectangle .

  • Definuje vnitřní proměnnou hdc typu ukazatele a nastaví její hodnotu na popisovač pro kontext zařízení formuláře.

  • Pomocí funkce GDI Rectangle nakreslí na obrazovku obdélník.

  • Uvolní kontext zařízení reprezentovaný parametrem 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

Poznámky

Kontext zařízení je struktura Windows založená na rozhraní GDI, která definuje sadu grafických objektů a jejich přidružené atributy, stejně jako grafické režimy, které ovlivňují výstup.

Volání metod a ReleaseHdc se GetHdc musí objevit ve dvojicích. Během rozsahu GetHdc dvojice metod a ReleaseHdc obvykle voláte pouze funkce GDI. Volání v daném oboru provedená na metody Graphics GDI+ metody, které vytvořily hdc parametr, selžou s chybou ObjectBusy . GDI+ také ignoruje všechny změny stavu provedené Graphics v parametru hdc v následných operacích.

Platí pro