Introduction
This is a simple project, a control that mimics the Microsoft� Outlook� 2003 mail alert.
Features
This control has several features. Among them, you'll find:
Progressive appearance - transparency
MSN Messenger like pop-ups (any size, color, etc.)
Another sample
This control is 100% drawn in the code, there is absolutely no other dependencies than System.Drawing
and System.Windows.Forms
.
You can include a ContextMenuStrip
when clicking on the "down arrow" button.
Using the code
The controls is made of two basic classes:
- A form (the part that will actually show up).
- A class that contains all the properties that will be includable on forms.
The class contains two timers, one used for the appearing/disappearing animation, the other (configurable) is used to define how much time the popup is shown before it disappears.
This is how the form is actually shown:
fPopup.Size = Size
fPopup.Opacity = 0
fPopup.Location = _
New Point(Screen.PrimaryScreen.WorkingArea.Right_
- fPopup.Size.Width - 1, _
Screen.PrimaryScreen.WorkingArea.Bottom)
fPopup.Show()
The form is does the drawing in the Paint
event.
I'm using these functions to obtain a color that is similar but lighter/darker. There might exist another method.
Private Function GetDarkerColor(ByVal Color As Color) As Color
Dim clNew As Color
clNew = Drawing.Color.FromArgb(255, DedValueMin0(CInt(Color.R), _
Parent.GradientPower), DedValueMin0(CInt(Color.G), _
Parent.GradientPower), DedValueMin0(CInt(Color.B), _
Parent.GradientPower))
Return clNew
End Function
And to avoid flickering...
Me.SetStyle(ControlStyles.OptimizedDoubleBuffer, True)
Me.SetStyle(ControlStyles.ResizeRedraw, True)
Me.SetStyle(ControlStyles.AllPaintingInWmPaint, True)
Points of Interest
None really, it's nice, it's fun, it's colorful... that's it :)
History