|
web
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Transparent Form surface'---------------------------------------------------------------------------------- Public Class UserControlTransp Inherits System.Windows.Forms.UserControl #Region " Windows Form Designer generated code " .... #End Region Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams Get Dim MyParams As CreateParams = MyBase.CreateParams() MyParams.ExStyle = MyParams.ExStyle Or &H20 Return MyParams End Get End Property Protected Overrides Sub OnPaintBackground(ByVal e As System.Windows.Forms.PaintEventArgs) ' for transparency End Sub Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs) ' Any drawing here ... ControlPaint.DrawBorder3D(e.Graphics, New Rectangle(10, 10, 200, 100), Border3DStyle.Etched) e.Graphics.FillEllipse(New SolidBrush(Color.FromArgb(100, 120, 200, 255)), New Rectangle(30, 30, 100, 100)) End Sub End Class '---------------------------------------------------------------------------------- this allows to draw on a trasparent control surface anything you want. Does anybody know the corresponding instructions to do the same with a Form? (clearly this is different by setting the form opacity, and allows for instance to draw sharp pictures on a transparent surface: opacity would instead be inherited by images drawn on the form). -tom On 20 May 2006 16:28:36 -0700, tommaso.gasta***@uniroma1.it wrote:
Show quoteHide quote >I found useful to use transparent controls like: See if this is what you are looking for if VB2005:> >'---------------------------------------------------------------------------------- >Public Class UserControlTransp > Inherits System.Windows.Forms.UserControl > >#Region " Windows Form Designer generated code " >... >#End Region > > Protected Overrides ReadOnly Property CreateParams() As >System.Windows.Forms.CreateParams > Get > Dim MyParams As CreateParams = MyBase.CreateParams() > MyParams.ExStyle = MyParams.ExStyle Or &H20 > Return MyParams > End Get > End Property > > Protected Overrides Sub OnPaintBackground(ByVal e As >System.Windows.Forms.PaintEventArgs) > ' for transparency > End Sub > > Protected Overrides Sub OnPaint(ByVal e As >System.Windows.Forms.PaintEventArgs) > ' Any drawing here ... > ControlPaint.DrawBorder3D(e.Graphics, New Rectangle(10, 10, >200, 100), Border3DStyle.Etched) > e.Graphics.FillEllipse(New SolidBrush(Color.FromArgb(100, 120, >200, 255)), New Rectangle(30, 30, 100, 100)) > End Sub > >End Class > >'---------------------------------------------------------------------------------- > >this allows to draw on a trasparent control surface anything you want. > >Does anybody know the corresponding instructions to do the same with a >Form? > >(clearly this is different by setting the form opacity, and allows for >instance to draw sharp >pictures on a transparent surface: opacity would instead be inherited >by images drawn on the form). > >-tom Set Form's Backcolor and TransparencyKey colors to same color. Any control with a Backcolor other than the TransparencyKey color, or, any drawn graphics using non-key colors will be dispalyed on a transparent form background. With a borderless form, this is one way to create an irregular shaped form. Gene Hi Gene, thank you
I am aware of the method you describe. What I was aiming to find is something that let me use the form as a purely transparent surface where to draw on. Setting the transparency key is something slightly different. It will also affect the drawing. And, more importantly, the color removal id done very badly and along irregular borders one can often see pixels of the masked color. I was just hoping there is a simple way to have a clean graphics where one can draw and that, at the same time, can be managed as a form... -tom gene kelley ha scritto: Show quoteHide quote > > Set Form's Backcolor and TransparencyKey colors to same color. > Any control with a Backcolor other than the TransparencyKey color, or, > any drawn graphics using non-key colors will be dispalyed on a > transparent form background. > > With a borderless form, this is one way to create an irregular shaped > form. > > Gene Hi,
Mike Harsh did a msdn tv episode about making non rectangular forms using regions. Maybe that will help you. http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20040401WinFormsMH/manifest.xml Ken --------------------- Show quoteHide quote "tommaso.gasta***@uniroma1.it" wrote: > Hi Gene, thank you > > I am aware of the method you describe. What I was aiming to find is > something that let me use the form as a purely transparent surface > where to draw on. > > Setting the transparency key is something slightly different. It will > also affect the drawing. > And, more importantly, the color removal id done very badly and along > irregular borders one can often see pixels of the masked color. > > I was just hoping there is a simple way to have a clean graphics where > one can draw and that, at the same time, can be managed as a form... > > -tom > > gene kelley ha scritto: > > > > > Set Form's Backcolor and TransparencyKey colors to same color. > > Any control with a Backcolor other than the TransparencyKey color, or, > > any drawn graphics using non-key colors will be dispalyed on a > > transparent form background. > > > > With a borderless form, this is one way to create an irregular shaped > > form. > > > > Gene > > Thanks Ken, that's a nice video!
I am beginning to think that to achieve this effect it is necessary to define a "floating transparent control" (i.e. whose parent is actually the desktop). I think I have read somewhere about that technique, although I am not sure where... Ken ha scritto: Show quoteHide quote > Hi, > > Mike Harsh did a msdn tv episode about making non rectangular > forms using regions. Maybe that will help you. > > http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20040401WinFormsMH/manifest.xml > > Ken > --------------------- > > "tommaso.gasta***@uniroma1.it" wrote: > > > Hi Gene, thank you > > > > I am aware of the method you describe. What I was aiming to find is > > something that let me use the form as a purely transparent surface > > where to draw on. > > > > Setting the transparency key is something slightly different. It will > > also affect the drawing. > > And, more importantly, the color removal id done very badly and along > > irregular borders one can often see pixels of the masked color. > > > > I was just hoping there is a simple way to have a clean graphics where > > one can draw and that, at the same time, can be managed as a form... > > > > -tom > > > > gene kelley ha scritto: > > > > > > > > Set Form's Backcolor and TransparencyKey colors to same color. > > > Any control with a Backcolor other than the TransparencyKey color, or, > > > any drawn graphics using non-key colors will be dispalyed on a > > > transparent form background. > > > > > > With a borderless form, this is one way to create an irregular shaped > > > form. > > > > > > Gene > > > >
logic gates in VB.NET 2005
string extraction VB.NET INI or XML file for path locations Service unable to start My.Application.Log.WriteEntry Is Cool, But Formated Information SUCKS Send Image in .NET Remoting Standard Method for Importing/Exporting to DB Sorting a collection of collections? Last position.. Batch Update ADO.Net |
|||||||||||||||||||||||