views:

38

answers:

2

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

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

A: 

You cannot draw on something that does not exist. The area outside of a form, by that definition, does not exist in the context of the form.

I agree with Henk, though, you can draw on transparent forms.

Charlie Salts
+3  A: 

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);
wb947
The problem with drawing directly to the desktop window is that it won't stick. The next time the desktop is told to repaint, your drawing will dissappear. While you could hook the desktop's message pump and redraw whenever it redraws, this is serious overkill. Using a full-screen transparent window that owns your main window is the cheapest way to get there.
Tergiver