WaynesButton class
An owner-drawn push-button. Renders a configurable rectangle (with optional gradient fill, borders, rounded / notched / cut-out corners) and a centred Caption, in one of four visual states — normal, hovered, focused, or pressed — driven by four parallel WaynesButtonState sub-objects.
The button raises a Click event when clicked, plus the standard set of mouse, focus, and keyboard events. By default the four state objects are pre-set with a solid mid-blue (WAYNESCOLOR_BLUE — &HAC7220) background and 15-pixel curved corners.
Private Sub Form_Load()
btnGo.Caption = "Continue"
btnGo.NormalState.BackgroundFill.ColorPoints.SetSolidColor vbBlue
btnGo.HoverState.BackgroundFill.SetSimplePattern vbBlue, vbWhite
btnGo.NormalState.Corners.SetAll tbCurve, 12
End Sub
Private Sub btnGo_Click()
MsgBox "Hello"
End Sub
Visual states
The button paints in one of four states, chosen at each repaint:
| State | When |
|---|---|
| PressedState | The mouse is held down inside the button. |
| HoverState | The mouse is held down outside the button, but began inside; or the mouse is hovering without being pressed. |
| FocusedState | The control has the keyboard focus and the mouse is not hovering or pressing. |
| NormalState | None of the above. |
Each state is a WaynesButtonState — a small bundle of Corners, BackgroundFill, Borders, and TextRendering.
Properties
Anchors
Which sides of the control are pinned to its container during resize. Anchors. Inherited.
Caption
The text shown centred on the button. String. Default: "Button".
Syntax: object.Caption [ = string ]
Dock
How the control is docked inside its container. A member of DockMode. Inherited.
FocusedState
The WaynesButtonState used when the control has the keyboard focus but is not being hovered or pressed.
Height
The control’s height in pixels. PixelCount. Inherited.
HoverState
The WaynesButtonState used when the mouse is hovering over the button without being pressed (or when the mouse has been pressed and dragged off the button).
Left
The horizontal offset of the control’s left edge from its container, in pixels. PixelCount. Inherited.
Name
The unique design-time name of the control on its parent form. String. Inherited.
NormalState
The WaynesButtonState used when the button is at rest — not hovered, not focused, not pressed.
PressedState
The WaynesButtonState used when the mouse is held down on the button.
TabIndex
The position of the control in the form’s TAB-key navigation order. Long. Inherited.
TabStop
Whether the user can reach the control by pressing TAB. Boolean. Inherited. Default: True.
Top
The vertical offset of the control’s top edge from its container, in pixels. PixelCount. Inherited.
Visible
Whether the control is currently displayed. Boolean. Inherited. Default: True.
Width
The control’s width in pixels. PixelCount. Inherited.
Events
Click
Raised when the user clicks the button (mouse down + mouse up inside the control).
Syntax: object_Click( )
GotFocus
Raised when the control receives the keyboard focus.
Syntax: object_GotFocus( )
KeyDown
Raised when the user presses a key while the control has focus.
Syntax: object_KeyDown( KeyCode As Integer, Shift As Integer )
KeyPress
Raised when the user types a character key while the control has focus.
Syntax: object_KeyPress( KeyCode As Integer )
KeyUp
Raised when the user releases a key while the control has focus.
Syntax: object_KeyUp( KeyCode As Integer, Shift As Integer )
LostFocus
Raised when the control loses the keyboard focus.
Syntax: object_LostFocus( )
MouseDown
Raised when the user presses a mouse button over the control.
Syntax: object_MouseDown( Button As Integer, Shift As Integer, X As Single, Y As Single )
MouseEnter
Raised when the cursor first enters the control.
Syntax: object_MouseEnter( )
MouseLeave
Raised when the cursor leaves the control.
Syntax: object_MouseLeave( )
MouseMove
Raised when the cursor moves over the control.
Syntax: object_MouseMove( Button As Integer, Shift As Integer, X As Single, Y As Single )
MouseUp
Raised when the user releases a mouse button over the control.
Syntax: object_MouseUp( Button As Integer, Shift As Integer, X As Single, Y As Single )