Graphics.ReleaseHdc Methode

Definitie

Hiermee wordt een apparaatcontext-handle uitgebracht die is verkregen door een eerdere aanroep naar de GetHdc() methode hiervan Graphics.

Overloads

Name Description
ReleaseHdc()

Hiermee wordt een apparaatcontext-handle uitgebracht die is verkregen door een eerdere aanroep naar de GetHdc() methode hiervan Graphics.

ReleaseHdc(IntPtr)

Hiermee wordt een apparaatcontext-handle uitgebracht die is verkregen door een eerdere aanroep naar de GetHdc() methode hiervan Graphics.

ReleaseHdc()

Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs

Hiermee wordt een apparaatcontext-handle uitgebracht die is verkregen door een eerdere aanroep naar de GetHdc() methode hiervan Graphics.

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

Implementeringen

Opmerkingen

GetHdc en ReleaseHdc zijn twee methoden waarmee u de ingang voor een Windows apparaat kunt ophalen en vrijgeven. Volg altijd een aanroep naar GetHdc met een aanroep naar ReleaseHdc wanneer u klaar bent met de Windows ingang.

Zie ook

Van toepassing op

ReleaseHdc(IntPtr)

Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs
Bron:
Graphics.cs

Hiermee wordt een apparaatcontext-handle uitgebracht die is verkregen door een eerdere aanroep naar de GetHdc() methode hiervan Graphics.

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

Parameters

hdc
IntPtr

nativeint

Verwerken naar een apparaatcontext die is verkregen door een eerdere aanroep naar de GetHdc() methode van deze Graphics.

Voorbeelden

Het volgende codevoorbeeld is ontworpen voor gebruik met Windows Forms en vereist PaintEventArgse, een parameter van de Paint gebeurtenis-handler. In het voorbeeld ziet u hoe u een Windows GDI-functie aanroept om dezelfde taak uit te voeren als een GDI+ Graphics methode. De code voert de volgende acties uit:

  • Definieert de interoperabiliteit DllImportAttribute kenmerk voor het Windows DLL-bestand gdi32.dll. Dit DLL-bestand bevat de gewenste GDI-functie en definieert de Rectangle functie in die DLL als extern.

  • Hiermee maakt u een rode pen.

  • Met de pen tekent u een rechthoek naar het scherm met behulp van de GDI+ DrawRectangle -methode.

  • Definieert een variabele van het interne type hdc aanwijzer en stelt de waarde ervan in op de ingang voor de apparaatcontext van het formulier.

  • Hiermee tekent u een rechthoek naar het scherm met behulp van de functie GDI Rectangle .

  • Hiermee wordt de apparaatcontext vrijgegeven die wordt vertegenwoordigd door de hdc parameter.

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

Opmerkingen

De apparaatcontext is een Windows structuur op basis van GDI die een set grafische objecten en de bijbehorende kenmerken definieert, evenals de grafische modi die van invloed zijn op uitvoer.

Aanroepen naar de GetHdc en ReleaseHdc methoden moeten in paren worden weergegeven. Tijdens het bereik van een GetHdc en ReleaseHdc methodepaar maakt u meestal alleen aanroepen naar GDI-functies. Aanroepen in dat bereik naar GDI+-methoden van de Graphics parameter die de hdc parameter hebben geproduceerd, mislukken met een ObjectBusy fout. GDI+ negeert ook alle statuswijzigingen in de Graphicshdc parameter in volgende bewerkingen.

Van toepassing op