Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ruft das Handle für den Gerätekontext ab, der diesem Graphics zugeordnet ist.
Namespace: System.Drawing
Assembly: System.Drawing (in system.drawing.dll)
Syntax
'Declaration
Public Function GetHdc As IntPtr
'Usage
Dim instance As Graphics
Dim returnValue As IntPtr
returnValue = instance.GetHdc
public IntPtr GetHdc ()
public:
virtual IntPtr GetHdc () sealed
public final IntPtr GetHdc ()
public final function GetHdc () : IntPtr
Rückgabewert
Handle für den Gerätekontext, der diesem Graphics zugeordnet ist.
Hinweise
Der Gerätekontext ist eine auf GDI basierende Windows-Struktur, die eine Gruppe von grafischen Objekten und deren zugeordnete Attribute sowie die Grafikmodi definiert, die sich auf die Ausgabe auswirken. Diese Methode gibt diesen Gerätekontext mit Ausnahme einer Schriftart zurück. Da keine Schriftart ausgewählt ist, schlägt jeder Aufruf der FromHdc-Methode fehl, bei dem ein von der GetHdc-Methode zurückgegebenes Handle verwendet wird.
Die GetHdc-Methode und die ReleaseHdc-Methode müssen paarweise aufgerufen werden. Im Gültigkeitsbereich eines GetHdc- und ReleaseHdc-Methodenpaares rufen Sie i. d. R. nur GDI-Funktionen auf. Wenn in diesem Gültigkeitsbereich-Methoden des Graphics-Objekts aufgerufen werden, das den hdc-Parameter erzeugt hat, schlägt der Aufruf mit einem ObjectBusy-Fehler fehl. Außerdem ignoriert GDI+ alle Zustandsänderungen, die in nachfolgenden Operationen am Graphics des hdc-Parameters vorgenommen werden.
Beispiel
Das folgende Codebeispiel ist für die Verwendung mit Windows Forms vorgesehen und erfordert PaintEventArgse, wobei es sich um einen Parameter des Paint-Ereignishandlers handelt. Im Beispiel wird der Aufruf einer GDI-Funktion von Windows veranschaulicht, die dieselbe Aufgabe wie eine Graphics-Methode von GDI+ ausführen soll. Der Code führt die folgenden Aktionen aus:
Definiert die DllImportAttribute-Interoperabilitätsattribute für die DLL-Datei gdi32.dll von Windows. Diese DLL enthält die gewünschte GDI-Funktion.
Definiert die Rectangle-Funktion in dieser DLL als extern.
Erstellt einen roten Stift.
Zeichnet mit dem Stift ein Rechteck auf dem Bildschirm, wobei die DrawRectangle-Methode von GDI+ verwendet wird.
Definiert eine interne Zeigertypvariable hdc und legt deren Wert auf das Handle für den Gerätekontext des Formulars fest.
Zeichnet mithilfe der Rectangle-Funktion von GDI ein Rechteck auf dem Bildschirm.
Gibt den Gerätekontext frei, der durch den hdc-Parameter dargestellt wird.
Public Class GDI
<System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")> _
Friend Shared Function Rectangle(ByVal hdc As IntPtr, _
ByVal ulCornerX As Integer, ByVal ulCornerY As Integer, ByVal lrCornerX As Integer, _
ByVal lrCornerY As Integer) As Boolean
End Function
End Class
<System.Security.Permissions.SecurityPermission( _
System.Security.Permissions.SecurityAction.LinkDemand, Flags := _
System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)> _
Public Sub GetHdcForGDI1(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.
GDI.Rectangle(hdc, 10, 70, 110, 120)
' Release handle to device context.
e.Graphics.ReleaseHdc(hdc)
End Sub
public class GDI
{
[System.Runtime.InteropServices.DllImport("gdi32.dll")]
internal static extern bool Rectangle(
IntPtr hdc,
int ulCornerX, int ulCornerY,
int lrCornerX, int lrCornerY);
}
[System.Security.Permissions.SecurityPermission(
System.Security.Permissions.SecurityAction.LinkDemand, Flags =
System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)]
public void GetHdcForGDI1(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.
GDI.Rectangle(hdc, 10, 70, 110, 120);
// Release handle to device context.
e.Graphics.ReleaseHdc(hdc);
}
.NET Framework-Sicherheit
- SecurityPermission für den Zugriff auf nicht verwalteten Code. Zugehörige Enumeration: UnmanagedCode
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0