Graphics.ReleaseHdc Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
ReleaseHdc() |
Rilascia un handle del contesto di dispositivo ottenuto da una chiamata precedente al metodo GetHdc() di questo Graphics. |
ReleaseHdc(IntPtr) |
Rilascia un handle del contesto di dispositivo ottenuto da una chiamata precedente al metodo GetHdc() di questo Graphics. |
ReleaseHdc()
- Origine:
- Graphics.cs
- Origine:
- Graphics.cs
public:
virtual void ReleaseHdc();
public void ReleaseHdc ();
abstract member ReleaseHdc : unit -> unit
override this.ReleaseHdc : unit -> unit
Public Sub ReleaseHdc ()
Implementazioni
Commenti
GetHdc e ReleaseHdc sono due metodi che consentono di ottenere e rilasciare l'handle per un dispositivo Windows. Devi sempre seguire una chiamata a GetHdc con una chiamata a ReleaseHdc al termine dell'handle di Windows.
Vedi anche
Si applica a
ReleaseHdc(IntPtr)
- Origine:
- Graphics.cs
- Origine:
- Graphics.cs
public:
void ReleaseHdc(IntPtr hdc);
public void ReleaseHdc (IntPtr hdc);
member this.ReleaseHdc : nativeint -> unit
Public Sub ReleaseHdc (hdc As IntPtr)
Parametri
- hdc
-
IntPtr
nativeint
Handle in un contesto di dispositivo ottenuto da una chiamata precedente al metodo GetHdc() di questo Graphics.
Esempio
L'esempio di codice seguente è progettato per l'uso con Windows Form e richiede PaintEventArgse
, che è un parametro del gestore eventi Paint. L'esempio illustra la chiamata di una funzione GDI di Windows per eseguire la stessa attività di un metodo GDI+ Graphics. Il codice esegue le azioni seguenti:
Definisce l'attributo di interoperabilità DllImportAttribute per il file DLL di Windows gdi32.dll. Questa DLL contiene la funzione GDI desiderata e definisce la funzione Rectangle in tale DLL come esterna.
Crea una penna rossa.
Con la penna, disegna un rettangolo sullo schermo usando il metodo GDI+ DrawRectangle.
Definisce una variabile di tipo puntatore interno
hdc
e ne imposta il valore sull'handle sul contesto di dispositivo del modulo.Disegna un rettangolo sullo schermo usando la funzione di Rectangle GDI.
Rilascia il contesto di dispositivo rappresentato dal parametro
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
Commenti
Il contesto del dispositivo è una struttura di Windows basata su GDI che definisce un set di oggetti grafici e i relativi attributi associati, nonché le modalità grafiche che influiscono sull'output.
Le chiamate ai metodi GetHdc e ReleaseHdc devono essere visualizzate in coppie. Durante l'ambito di una coppia di metodi GetHdc e ReleaseHdc, in genere si effettuano chiamate solo alle funzioni GDI. Le chiamate nell'ambito effettuate ai metodi GDI+ del Graphics che ha generato il parametro hdc
hanno esito negativo con un errore di ObjectBusy
. GDI+ ignora inoltre qualsiasi modifica dello stato apportata al Graphics del parametro hdc
nelle operazioni successive.