Re: GIF image on a form
- From: "G .Net" <nodamnspam@xxxxxxxxx>
- Date: Sat, 20 May 2006 10:11:20 +0100
Many thanks Fred for your comprehensive help.
G
"Fred Hedges" <dontlike@xxxxxxxxxxxx> wrote in message
news:e4kqgh$hf$1$830fa7a5@xxxxxxxxxxxxxxxxxxx
(1) Create a new User Control
(2) Override it's CreateParms property with this:
Protected Overrides ReadOnly Property CreateParams() As CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
cp.ExStyle = cp.ExStyle Or WS_EX_TRANSPARENT
Return cp
End Get
End Property
(3) In Sub New(), add the following code:
Me.SetStyle(ControlStyles.SupportsTransparentBackColor, True)
Me.UpdateStyles()
Me.BackColor = Color.Transparent
(4) Override the OnPaintBackground event, but don't put anything into it:
Protected Overrides Sub OnPaintBackground(ByVal e As PaintEventArgs)
'
End Sub
(5) Import the GIF into your resources (Project Properties, Resources,
Images, Add Image...).
This will basically give you a transparent surface. Now you can draw your
.GIF onto this transparent surface any way you want, eg:
(6) Override the OnPaint event and use it to draw your image:
Protected Overrides Sub OnPaint(byval e As PaintEventArgs)
' Render our image here, no stretch, modify to stretch to fill
' the control if required.
e.Graphics.DrawImage ( My.Resources.WhateverMyGIFImageIsCalled, 0,
0 )
End Sub
Hope this helps.
"G .Net" <nodamnspam@xxxxxxxxx> wrote in message
news:jZidnYXR75NfdPDZnZ2dnUVZ8qSdnZ2d@xxxxxxxxxxxx
Hi Fred
Ah, looks like exactly what I need!!!
However, bit of newbie so need help in exactly what to do. Could I
trouble you to give the steps I need?
G
"Fred Hedges" <dontlike@xxxxxxxxxxxx> wrote in message
news:e4ko8g$362$1$830fa17d@xxxxxxxxxxxxxxxxxxx
What you need to do is make a user control and then modify it's
transparent property on window construction. You then need to handle
"InvalidateEx" messages in order to force the parent to redraw your
background, rather than you. Funny you mention this because I had to do
this with a "working....." animation yesterday.
This sample is in C# but it's easy to convert. You won't be needing a
picture box. Just use DrawImage to render your GIF on the control
surface but overriding the paint event.
http://www.devnewsgroups.net/link.aspx?url=http://dotnet.mvps.org/dotnet/faqs/?id=transparentcontrol&lang=en%3E
"G .Net" <nodamnspam@xxxxxxxxx> wrote in message
news:JfqdnbvL_-z4fPDZRVnyiA@xxxxxxxxxxxx
Hi
I have a form on which I have a picture box. I have placed a GIF as the
image for this picture box. The GIF has a transparent background.
If I change the background color of the form, then the GIF appears on
the form correctly i.e. the background of the form shows through the
transparent part of the gif.
However, if I place a BackgroundImage on the form, the transparent part
of the form does not show the BackgroundImage of the form, rather is
shows the back color of the form. This obviously make the GIF not to be
"transparent".
Can anybody help?
Thanks
G
.
- References:
- Q: GIF image on a form
- From: G .Net
- Re: GIF image on a form
- From: Fred Hedges
- Re: GIF image on a form
- From: G .Net
- Re: GIF image on a form
- From: Fred Hedges
- Q: GIF image on a form
- Prev by Date: Re: combobox two values
- Next by Date: Re: GIF image on a form
- Previous by thread: Re: GIF image on a form
- Next by thread: Re: GIF image on a form
- Index(es):
Relevant Pages
|