|AR Flat Button
ActiveX Control 1.06
This is just another flat button control,
that admits either a picture or a caption. It also has extra functionallity that will
allow you to set certain aspects of the behaviour of the control, like different pictures
depending on the state, if the button should popup or if the button should stay pressed on
THIS CONTROL HAS
BEEN REPLACED AND IMPROVED BY THE AR Button Control.
I didn't think about doing a control like
this, as I have the Sheridan ActiveThreed Controls,
which allow me to do most of the typical visual effects to my programs. They are quite
expensive, though. There is also a 'Soft Button' control in the VB Owners section of the Microsoft Visual Basic web site, although this
control only works with graphics, and doesn't allow you to have a button just with a
caption (it also has a couple of bugs, but don't tell Microsoft). Finally I have seen
other controls but they didn't work very well, and most of them were almost exact copies
of the control made by Microsoft.
Anyways, as many people asked me about
controls of this kind, and I also wanted to have a couple of features missing in other
controls, I made my own one.
This control uses the Hot Track library,
made by some programmer in Microsoft and
distributed from the VB
Owners web site. This library provides my control of the necessary events to handle
the position of the mouse. The source code of the library is compiled with the control for
Remember that to be able to use the
control you will have to introduce the license information in the registry of your
computer. You can do this by just double clicking on the 'AR Flat Button Control
License.reg' file, included in the ZIP.
The control has a lot of properties,
methods and events, so I will just comment the ones specific for this control. If you find
any bugs, you have comments, or you think I should add something to this control, please contact me.
- 19.03.98: Released version 1.0.
- 21.03.98, Version 1.01: Added
functionallity (properties 'DarkEdges' and 'Active'), fixed a bug with the ToolTipText
(also removed the 'ToolTipTxt' property), improved the appearance of the control in other
- 22.03.98, Version 1.02: The control will
be able to show up to four different pictures depending on the state, through the
following properties: DisabledPicture, OnPicture, PressedPicture, Picture. Also added the
'Enabled' property, that will show a different picture on the button if it is set, and
will make the button not respond on any events.
- 08.04.98, Version 1.03: this release just
improves the behaviour of the control.
- 12.04.98, Version 1.04: Added the
possibility of aligning the text in the caption (left, right and center) using the
alignment property. Also improved some aspects of the control. Fixed a bug involved with
the 'StayPressed' property (read the Considerations section).
- 12.05.98, Version 1.05: Fixed a couple of
minor bugs. Added the 'SetState' method.
- 08.06.98, Version 1.06: Fixed a bug that
made the control not work properly when was disabled from its own code.
- Active. When set to false, the button will
not popup when the mouse is over it, but it will still get inset when clicked.
- Alignment. Left, Right or Center; this
property sets the alignment of the text shown in the caption when the button is in text
- AutoSize. If true, the control will adjust
its size to the size of the text or graphic that contains.
- BackColor. BackColor for the control.
- Caption. That, the text that will be
- DarkEdges. When true, the thin shadow of
the control will be darker. Depending on the color of the form over which the control is,
this might look better.
- DisabledPicture. Picture that will be
shown when the control is disabled.
- Enabled. When true, the button will not
respond to any events. Also, if the style is 'Graphic' and the 'DisabledPicture' property
is set, the button will show the graphic set in the 'DisabledPicture' property.
- Font. Font that will be used to show the
- ForeColor. Color used to show the caption.
Ignored when displaying a picture.
- OnPicture. Picture that will be shown when
the mouse is over the control.
- Picture. Graphic that will be shown in the
- PressedPicture. Picture that will be shown
when the button is pressed.
- StayPressed. When true, one click to press
the button and another to release. If false, you press and release the button with only
- Style. 'Graphic' or 'Text'. If 'Graphic',
the caption is ignored; when 'Text' the picture is ignored. If there is no picture set,
the button stays in 'Text' mode.
- ToolTipTxt. THIS PROPERTY IS NO LONGER
VALID, although it still exists for compatibility. Instead, use the normal 'ToolTipText'.
- SetState (lState as enState). lState can
be Flat (0), Raise (1) or Pressed (2). Use this method to, programmatically, set the state
of the button.
- Click ()
- MouseEnter ()
- MouseLeave ()
- If the control is the first one in the tab
stop list, and 'StayPressed' is true, when the form loads the control will appear pressed.
To avoid this, set 'TabStop' to false or put another control with a lower 'TabIndex'
- If you want to put a transparent picture,
you can put a transparent icon or a transparent GIF. The transparent part of the image
will be set to the background color of the control. This is easier and works better than
dealing with the 'MaskColor' property, so I didn't include it in this control.
- If you are using different pictures for
different states, make sure that all the pictures are the same size. Otherwise the control
will have a strange behaviour.
- If you don't set the 'DisabledPicture',
'OnPicture' or 'PressedPicture' properties, the control will use the picture set in the
'Picture' property. If you don't set this last one, the control will automatically change
its style to 'Text'.
- If you don't want the control to popup,
but you still want its picture to change when the mouse is over it, use the 'MouseEnter'
and 'MouseLeave' events with the 'Picture' property.
- Before version 1.04, if the button had the
'StayPressed' property set to true and you clicked on any other part of the form
(including other controls), the button appeared as released. Depending on how you want to
use the control, this may be correct or wrong. From now on, to make the button stay
pressed set its 'TabStop' property to false.
© Alvaro Redondo, 1998. All Rights Reserved.