Graphics.ReleaseHdc Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Överlagringar
| Name | Description |
|---|---|
| ReleaseHdc() |
Släpper en enhetskontextreferens som hämtats av ett tidigare anrop till metoden för GetHdc() den här Graphics. |
| ReleaseHdc(IntPtr) |
Släpper en enhetskontextreferens som hämtats av ett tidigare anrop till metoden för GetHdc() den här Graphics. |
ReleaseHdc()
- Källa:
- Graphics.cs
- Källa:
- Graphics.cs
- Källa:
- Graphics.cs
- Källa:
- Graphics.cs
- Källa:
- Graphics.cs
- Källa:
- Graphics.cs
- Källa:
- Graphics.cs
- Källa:
- Graphics.cs
- Källa:
- Graphics.cs
public:
virtual void ReleaseHdc();
public void ReleaseHdc();
abstract member ReleaseHdc : unit -> unit
override this.ReleaseHdc : unit -> unit
Public Sub ReleaseHdc ()
Implementeringar
Kommentarer
GetHdc och ReleaseHdc är två metoder som gör att du kan hämta och släppa handtaget för en Windows enhet. Du bör alltid följa ett anrop till GetHdc med ett anrop till ReleaseHdc när du är klar med Windows-handtaget.
Se även
Gäller för
ReleaseHdc(IntPtr)
- Källa:
- Graphics.cs
- Källa:
- Graphics.cs
- Källa:
- Graphics.cs
- Källa:
- Graphics.cs
- Källa:
- Graphics.cs
- Källa:
- Graphics.cs
- Källa:
- Graphics.cs
- Källa:
- Graphics.cs
- Källa:
- Graphics.cs
public:
void ReleaseHdc(IntPtr hdc);
public void ReleaseHdc(IntPtr hdc);
member this.ReleaseHdc : nativeint -> unit
Public Sub ReleaseHdc (hdc As IntPtr)
Parametrar
- hdc
-
IntPtr
nativeint
Hantera till en enhetskontext som erhållits av ett tidigare anrop till metoden för GetHdc() den här Graphics.
Exempel
Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Exemplet visar hur du anropar en Windows GDI-funktion för att utföra samma uppgift som en GDI+ Graphics-metod. Koden utför följande åtgärder:
Definierar attributet interoperabilitet DllImportAttribute för Windows DLL-filen gdi32.dll. Den här DLL-filen innehåller önskad GDI-funktion och definierar funktionen i DLL Rectangle :n som extern.
Skapar en röd penna.
Med pennan ritar du en rektangel till skärmen med hjälp av GDI+ DrawRectangle -metoden.
Definierar en intern pekartypsvariabel
hdcoch anger dess värde till handtaget till formulärets enhetskontext.Ritar en rektangel till skärmen med hjälp av GDI-funktionen Rectangle .
Släpper enhetskontexten som representeras av parametern
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
Kommentarer
Enhetskontexten är en Windows struktur baserad på GDI som definierar en uppsättning grafiska objekt och deras associerade attribut, samt de grafiska lägen som påverkar utdata.
Anrop till GetHdc metoderna och ReleaseHdc måste visas i par. Under omfånget för ett GetHdc och ReleaseHdc -metodpar gör du vanligtvis anrop endast till GDI-funktioner. Anrop i det omfånget som görs till GDI+-metoder för Graphics den som skapade parametern hdc misslyckas med ett ObjectBusy fel. Dessutom ignorerar GDI+ alla tillståndsändringar som gjorts Graphics i parametern hdc i efterföljande åtgärder.