Graphics.ReleaseHdc Método

Definición

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

Sobrecargas

Nombre Description
ReleaseHdc()

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

ReleaseHdc(IntPtr)

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

ReleaseHdc()

Libera un identificador de contexto de dispositivo obtenido por una llamada anterior al GetHdc() método 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)

Libera un identificador de contexto de dispositivo obtenido por una llamada anterior al GetHdc() método 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 por una llamada anterior al GetHdc() método 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 controlador de eventos Paint. 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+

  • Define el atributo /> de interoperabilidad Rectangle función en ese archivo DLL como externo.

  • 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 del 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 realizadas en ese ámbito a los métodos de GDI+ del Graphics que produjo 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