there is a couple ways to do this, the way photoshop does it is drawing to the screen... not the form. here is an example of doing so
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Runtime.InteropServices;
namespace DrawToScreen
{
#region UnmanagedMethods
internal class UnmanagedMethods
{
[DllImport("user32")]
internal static extern IntPtr GetDC(IntPtr hwnd);
[DllImport("User32.dll")]
internal static extern void ReleaseDC(IntPtr dc);
}
#endregion
#region Actual drawing
public class DrawingToScreen
{
public void PaintRectToScreen()
{
IntPtr deskDC = UnmanagedMethods.GetDC(IntPtr.Zero);
Graphics g = Graphics.FromHdc(deskDC);
g.FillRectangle(new SolidBrush(Color.FromArgb(100, Color.Green)), 0,0, 500, 500);
g.EndContainer(cont);
g.Dispose();
UnmanagedMethods.ReleaseDC(deskDC);
}
}
#endregion
}
Not sure where I got it. Kudos to whoever wrote it.
this method works well, but only if you are sure to draw to the screen over your application only, because the desktop will not be invalidated when you expect, so clearing the image won't always go so hot. Its complicated.
A different... yet equally complicated, but less buggy method would be to create a new form, chromeless, that uses exlayerdwindow to display a slightly transparent image following the mouse. this would be much easier to accomplish the look you want, since the form will support full transparency you could make it look however you wanted, even create the image prorammatically in GDI plus, if you wanted too....
either way, Concepts such as though are very complicated, and the simple things like that are truly the hardest features.
Best of luck.