Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Draw / Paint Outside Form

Can we paint images and draw text... outside a form.. i mean literally outside...

i know its stupid question to ask but CAN we...

like image 715
Moon Avatar asked Jul 31 '10 18:07

Moon


1 Answers

You can "cheat" by creating a form, and setting its TransparentColor property to its background color, then draw on it. However, this prohibits you from drawing the transparent color because it won't show.

Or you could actually draw directly to the desktop.

[DllImport("User32.dll")]
public static extern IntPtr GetDC(IntPtr hwnd);
[DllImport("User32.dll")]
public static extern void ReleaseDC(IntPtr dc);

IntPtr desktopPtr = GetDC(IntPtr.Zero);
Graphics g = Graphics.FromHdc(desktopPtr);

// Do graphics manipulation here with "g" object

// Very important - free desktop graphics.
g.Dispose();
ReleaseDC(desktopPtr);
like image 99
walterbing1 Avatar answered Nov 13 '22 16:11

walterbing1