2016-05-06 23 views
1

Ich brauche die genaue Bedeutung von IntPtr.Zero in unten Funktion. Ich habe diese Funktion zum Konvertieren von Word-Textbereich Pixelposition Wert in WPF Einheit Wert verwendet.Was bedeutet IntPtr.Zero in System.Drawing.Graphics

Graphics g = Graphics.FromHwnd(IntPtr.Zero) 

Das normalerweise gesagt, um den Griff zu übergeben, aber ich habe es nicht verstanden.

Antwort

2

Graphics.FromHwnd Methode wird verwendet, um ein Graphics Objekt aus dem angegebenen Handler eines Fensters zu erstellen.

Wenn Sie IntPtr.Zero als Parameter übergeben, erstellen Sie einen Graphics vom Windows-Desktop, mit dem Sie direkt auf dem Bildschirm zeichnen können.

1

IntPtr ist eine plattformspezifische Möglichkeit, ein Handle oder einen Zeiger darzustellen. Bei 32-Bit-Systemen ist ein Zeiger 32 Bit breit, während er bei einem 64-Bit-System 64 Bit breit ist. Dieser Typ existiert, um diese Unterschiede vor Ihnen zu verbergen.

IntPtr.Zero stellt ein Handle oder einen Zeiger dar, dessen Werte 0 (im Wesentlichen null) sind. Sie können es an den Stellen verwenden, an denen die API eine Windows-API-Formatkennung erwartet, z. B. in dem Beispiel FromHwnd in Ihrem Beispiel. In der Windows-API ist ein HWND ein Fenster-Handle, wobei Null "kein Fenster" angibt. Um dies über C# zu übergeben, verwenden Sie IntPtr.Zero.

+0

* "In der Windows-API ist ein HWND ein Fenster-Handle, wobei Null" kein Fenster "anzeigt." * - In der Windows-API gibt es keine solche Konvention. Wann immer ein 'HWND'-Argument optional ist, trägt es spezifische Semantik. Da "System.Graphics.Drawing" GDI + umschließt, was in Bezug auf GDI implementiert wird, würde ich annehmen, dass dies ein Objekt abruft, das den gesamten Bildschirm darstellt, obwohl dies nicht speziell dokumentiert ist. – IInspectable