Graphics.ReleaseHdc Método

Definición

Libera un identificador de contexto de dispositivo obtenido mediante una llamada anterior al método GetHdc() de este Graphics.

Sobrecargas

ReleaseHdc()

Libera un identificador de contexto de dispositivo obtenido mediante una llamada anterior al método GetHdc() de este Graphics.

ReleaseHdc(IntPtr)

Libera un identificador de contexto de dispositivo obtenido mediante una llamada anterior al método GetHdc() de este Graphics.

ReleaseHdc()

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

Libera un identificador de contexto de dispositivo obtenido mediante una llamada anterior al método GetHdc() de este Graphics.

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

Implementaciones

Comentarios

GetHdc y ReleaseHdc son dos métodos que permiten obtener y liberar el identificador de un dispositivo Windows. Siempre debe seguir una llamada a GetHdc con una llamada a ReleaseHdc cuando haya terminado con el identificador de Windows.

Consulte también

Se aplica a

ReleaseHdc(IntPtr)

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

Libera un identificador de contexto de dispositivo obtenido mediante una llamada anterior al método GetHdc() de este Graphics.

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

Parámetros

hdc
IntPtr

nativeint

Identificador de un contexto de dispositivo obtenido mediante una llamada anterior al método GetHdc() de este Graphics.

Ejemplos

El ejemplo de código siguiente está diseñado para su uso con Windows Forms y requiere PaintEventArgse, que es un parámetro del Paint controlador de eventos. En el ejemplo se muestra cómo llamar a una función GDI de Windows para realizar la misma tarea que un método GDI+ Graphics . El código realiza las siguientes acciones:

  • Define el atributo de interoperabilidad DllImportAttribute para el archivo DLL de Windows gdi32.dll. Este archivo DLL contiene la función GDI deseada y define la Rectangle función en ese archivo DLL como externa.

  • Crea un lápiz rojo.

  • Con el lápiz, dibuja un rectángulo en la pantalla mediante el método GDI+ DrawRectangle .

  • Define una variable hdc de tipo de puntero interno y establece su valor en el identificador en el contexto del dispositivo del formulario.

  • Dibuja un rectángulo en la pantalla mediante la función GDI Rectangle .

  • Libera el contexto del dispositivo representado por el hdc parámetro .

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

Comentarios

El contexto del dispositivo es una estructura de Windows basada en GDI que define un conjunto de objetos gráficos y sus atributos asociados, así como los modos gráficos que afectan a la salida.

Las llamadas a los GetHdc métodos y ReleaseHdc deben aparecer en pares. Durante el ámbito de un GetHdc par de métodos y ReleaseHdc , normalmente se realizan llamadas solo a funciones GDI. Las llamadas en ese ámbito realizadas a métodos de GDI+ del Graphics que generó el hdc parámetro producen un ObjectBusy error. Además, GDI+ omite los cambios de estado realizados en el Graphicshdc del parámetro en las operaciones posteriores.

Se aplica a