Graphics.ReleaseHdc Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
ReleaseHdc() |
Zwalnia uchwyt kontekstu urządzenia uzyskany przez poprzednie wywołanie metody GetHdc() tego Graphics. |
ReleaseHdc(IntPtr) |
Zwalnia uchwyt kontekstu urządzenia uzyskany przez poprzednie wywołanie metody GetHdc() tego Graphics. |
ReleaseHdc()
- Źródło:
- Graphics.cs
- Źródło:
- Graphics.cs
public:
virtual void ReleaseHdc();
public void ReleaseHdc ();
abstract member ReleaseHdc : unit -> unit
override this.ReleaseHdc : unit -> unit
Public Sub ReleaseHdc ()
Implementuje
Uwagi
GetHdc i ReleaseHdc to dwie metody, które umożliwiają uzyskanie i zwolnienie uchwytu dla urządzenia z systemem Windows. Zawsze należy postępować zgodnie z wywołaniem , aby GetHdc z wywołaniem ReleaseHdc po zakończeniu obsługi systemu Windows.
Zobacz też
Dotyczy
ReleaseHdc(IntPtr)
- Źródło:
- Graphics.cs
- Źródło:
- Graphics.cs
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
Dojmij do kontekstu urządzenia uzyskanego przez poprzednie wywołanie metody GetHdc() tego Graphics.
Przykłady
Poniższy przykład kodu jest przeznaczony do użycia z formularzami Systemu Windows i wymaga PaintEventArgse
, który jest parametrem programu obsługi zdarzeń Paint. W przykładzie pokazano wywołanie funkcji GDI systemu Windows w celu wykonania tego samego zadania co metoda GDI+ Graphics. Kod wykonuje następujące akcje:
Definiuje atrybut współdziałania DllImportAttribute dla pliku DLL systemu Windows gdi32.dll. Ta biblioteka DLL zawiera żądaną funkcję GDI i definiuje funkcję Rectangle w tej bibliotece DLL jako zewnętrzną.
Tworzy czerwony pióro.
Za pomocą pióra rysuje prostokąt na ekranie przy użyciu metody GDI+ DrawRectangle.
Definiuje wewnętrzną zmienną typu wskaźnika
hdc
i ustawia jej wartość na dojście do kontekstu urządzenia formularza.Rysuje prostokąt na ekranie przy użyciu funkcji GDI Rectangle.
Zwalnia kontekst urządzenia reprezentowany przez parametr
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
Uwagi
Kontekst urządzenia jest strukturą systemu Windows opartą na GDI, która definiuje zestaw obiektów graficznych i skojarzonych z nimi atrybutów, a także tryby graficzne wpływające na dane wyjściowe.
Wywołania metod GetHdc i ReleaseHdc muszą występować w parach. W zakresie pary GetHdc i ReleaseHdc metody zwykle wykonuje się wywołania tylko do funkcji GDI. Wywołania w tym zakresie do metod GDI+ Graphics, które wygenerowały parametr hdc
kończy się niepowodzeniem z powodu błędu ObjectBusy
. Ponadto GDI+ ignoruje wszelkie zmiany stanu wprowadzone w Graphics parametru hdc
w kolejnych operacjach.