ID Number: Q79601
1.00
WINDOWS
Summary:
You can place animated graphics onto a minimized form in Visual Basic.
Normally, when a form is minimized, the form is replaced with an icon
that had been previously set using the Icon property of that form.
This icon is an actual bitmap that cannot be manipulated. Using the
method below, the icon can be replaced with a set of graphics methods
that will draw to the minimized form.
This information applies to Microsoft Visual Basic programming system
version 1.0 for Windows.
More Information:
To place animated graphics onto a minimized form, you must use a timer
event. This will allow the program to continue its animation when the
form is minimized. A minimized form is just like a non-minimized form,
except its size is decreased and certain rules apply. The following
guidelines should be followed when creating animated graphics on a
form:
- The AutoRedraw property must be set to 0 (False).
- The user must place routines in the Paint event procedure to handle
cases when the Paint event occurs in the maximized form. In the
minimized form, a Paint event never occurs, and you must depend
upon the timer event to refresh the icon representing the
minimized form.
- The user must handle the painting of the background because a
minimized form has no background, only foreground.
- Adjust your animation to the size of the minimized form by using
either the Scale method or the ScaleWidth and ScaleHeight property.
The following example creates an animated icon that displays random
circles every 500 milliseconds:
1. From the File menu, choose New Project.
2. Remove the icon from the Icon property. (You can do this by
selecting the Icon property and pressing the DELETE key.)
3. Place a new timer control on the form.
4. Change the timer interval to 500.
5. Type the following code into the new timer event:
Static prevx!, prevy!
If windowstate = 1 Then 'Checks to see if form is
'minimized.
form1.Scale (0, 0)-(100, 100) 'Sets the max height and
'width of the form.
fillcolor = QBColor(0)
Circle (prevx!, prevy!), scalewidth / 10, QBColor(0)
fillstyle = 0
fillcolor = QBColor(1)
prevx! = Int(Rnd(1) * scalewidth) + 1
prevy! = Int(Rnd(1) * scaleheight) + 1
Circle (prevx!, prevy!), scalewidth / 10, QBColor(1)
End If
6. From the Run menu, choose Start.
7. Minimize the form by choosing Minimize from the control box menu,
or click the minimize arrow (the minimize arrow is the down arrow)
on the form.
Additional reference words: 1.00