Windos-Desktop als Panel verwenden?

pria

Mitglied
Ich weiss nicht ob das Thread schon verschollen ist aber ich roll das hier nochmal auf.
Kann mir einer zeigen , wie man einmal auf dem Desktop mit Graphics2D Unterstützung und einmal im aktuell ofenen Fenster des Users zeichnet?
 

PhoenixLoe

Erfahrenes Mitglied
Hi pria,

um auf dem Desktop zu zeichnen, musst du nur das Desktop-Handle per Win-API ermitteln und als Device-Context verwenden. Klingt kryptisch, ist aber nicht weiter schwierig :):

Code:
[DllImport("user32")]
internal static extern IntPtr GetDC(IntPtr hwnd);

[DllImport("user32")]
internal static extern void ReleaseDC(IntPtr dc);

( ... )

IntPtr deskDC = GetDC(IntPtr.Zero);
Graphics g = Graphics.FromHdc(deskDC);
( ... )
ReleaseDC(deskDC);
Wie man in Fremdanwendungen zeichnet, weiß ich allerdings nicht. Theoretisch muss man das Fensterhandle ermitteln und dann ein Graphics-Objekt per Graphics.FromHwnd erzeugen.

Gruß
PhoenixLoe