What about this funny idea: Generate a composition between the users current
desktop wallpaper and the stuff you want to draw.
That means you have to draw into this wallpaperbitmap in memory, write it to
a new file and set it as wallpaper.
The question is how often the things you are drawing should be refreshed.
May I ask what exactly you are drawing?
"redneon" <redneon@discussions.microsoft.com> schrieb im Newsbeitrag
news:F11663C1-5B11-4464-B485-ED56851B2C76@microsoft.com...[color=blue]
> This is great. Thanks. There's just another problem with it though. It[/color]
only[color=blue]
> draws it once. Is there any way to get it to constantly draw it? I'm
> wondering if there's an event message I could capture in public override
> WndProc for a screen refresh and stick it in there. I tried putting it in[/color]
a[color=blue]
> recursive while loop in it's own thread but obviously this is a bad idea[/color]
and,[color=blue]
> while it worked, it ended up just recursively drawing, jerking and[/color]
generally[color=blue]
> looking a mess.
>
> Darrell
>
> "Bob Powell [MVP]" wrote:
>[color=green]
> > Within your own window you can draw using the Graphics object passed in[/color][/color]
the[color=blue][color=green]
> > OnPaint or Paint event arguments.
> >
> > Dou you mean directly on the desktop? Yes you can by obtaining the[/color][/color]
desktop[color=blue][color=green]
> > handle and wrapping it in a GDI+ Graphics object using Graphics.FromHdc.
> >
> > I generally use interop for this and import the GetDc and ReleaseDc[/color][/color]
methods.[color=blue][color=green]
> > You must remember to correctly release DC's when you do this.
> >
> > It's not neat or pretty though...
> >
> > [DllImport("User32.dll")]
> >
> > public static extern IntPtr GetDC(IntPtr hwnd);
> >
> > [DllImport("User32.dll")]
> >
> > public static extern void ReleaseDC(IntPtr dc);
> >
> > protected override void OnPaint(PaintEventArgs e)
> >
> > {
> >
> > SolidBrush b=new SolidBrush(Color.Red);
> >
> >
> > IntPtr desktopDC=GetDC(IntPtr.Zero);
> >
> > Graphics g = Graphics.FromHdc(desktopDC);
> >
> > g.FillEllipse(b,0,0,1024,768);
> >
> > g.Dispose();
> >
> > ReleaseDC(desktopDC);
> >
> > }
> >
> >
> > --
> > Bob Powell [MVP]
> > Visual C#, System.Drawing
> >
> > Find great Windows Forms articles in Windows Forms Tips and Tricks
> >
http://www.bobpowell.net/tipstricks.htm
> >
> > Answer those GDI+ questions with the GDI+ FAQ
> >
http://www.bobpowell.net/faqmain.htm
> >
> > All new articles provide code in C# and VB.NET.
> > Subscribe to the RSS feeds provided and never miss a new article.
> >
> >
> >
> >
> >
> > "redneon" <redneon@discussions.microsoft.com> wrote in message
> > news:05A27CF9-3496-4CF0-BE6D-CA9E812AB486@microsoft.com...[color=darkred]
> > > Is it possible to draw directly to the screen using the .net[/color][/color][/color]
libraries? I[color=blue][color=green][color=darkred]
> > > thought that it might be possible with GDI+ but I can't find out how[/color][/color][/color]
to do[color=blue][color=green][color=darkred]
> > > it
> > > anywhere. A part of me suspects I may have to look into using the[/color][/color][/color]
Windows[color=blue][color=green][color=darkred]
> > > API.
> > >
> > > Any ideas,
> > >
> > > Darrell
> > >[/color]
> >
> >
> >[/color][/color]