Now that we have our form set up with our properties and methods, we need to add some controls to the
form. Since I’m already working with a visual class library for the form (DESKALERT.VCX), let’s
create some more classes for the form objects.
Based on the items in Table 1 (when we separated the pieces of an alert form), I’m going to create a class
for the buttons on the form. I’m not going to use a CommandButton, though. I’m going to use a Container
Object, and add an Image to it (pictured below in the Visual FoxPro IDE).
Figure 2: cntButton
Here are the properties for the Container, which is stored in DESKALERT.VCX as cntButton:
Width = 15
Height = 15
BackStyle = 0
BorderWidth = 0
MousePointer = 15
BackColor = RGB(192,192,192)
BorderColor = RGB(128,128,128)
Name = cntButton
And now the properties for the image we add to the container:
BackStyle = 0
Height = 11
Left = 2
MousePointer = 15
Top = 2
Width = 11
Name = "imgImage"
The effect I’m looking for is to have a button appear as a simple graphic (like the Close button and
Settings button in Figure 1). When the mouse moves over it, the BackColor will change and a border will
appear. To do this, we’ll add code in the Container’s MouseEnter() and MouseLeave() methods.
In the MouseEnter(), we’ll change the BackColor to light gray, put a dark gray single border around the
container, and set the BackStyle to opaque:
PROCEDURE MouseEnter
LPARAMETERS nButton, nShift, nXCoord, nYCoord
WITH THIS
.BackColor = RGB(192,192,192)
.BorderWidth = 1
.BackStyle = 1
ENDWITH
ENDPROC