WaynesButton 类
自绘按钮。渲染一个可配置的矩形(可选渐变填充、边框、圆角/凹口/切角)和居中的 Caption,具有四种视觉状态——正常、悬停、焦点或按下——由四个并行的 WaynesButtonState 子对象控制。
按钮被点击时触发 Click 事件,以及标准鼠标、焦点和键盘事件集。默认情况下四个状态对象预设为纯中蓝色(WAYNESCOLOR_BLUE —— &HAC7220)背景和 15 像素曲线角。
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视觉状态
按钮在每次重绘时选择四种状态之一绘制:
| 状态 | 时机 |
|---|---|
| PressedState | 鼠标在按钮内按住不放。 |
| HoverState | 鼠标在按钮外按住但开始在按钮内按下;或鼠标悬停但未按下。 |
| FocusedState | 控件具有键盘焦点且鼠标未悬停或按下。 |
| NormalState | 以上均不满足。 |
每个状态是一个 WaynesButtonState——Corners、BackgroundFill、Borders 和 TextRendering 的小型组合。
属性
Anchors
调整大小时控件的哪些边附着到其容器。Anchors。继承。
Caption
按钮上居中显示的文本。String。默认:"Button"。
语法:object.Caption [ = string ]
Dock
控件在其容器内的停靠方式。DockMode 的成员。继承。
FocusedState
控件具有键盘焦点但未悬停或按下时使用的 WaynesButtonState。
Height
控件的高度(像素)。PixelCount。继承。
HoverState
鼠标悬停在按钮上但未按下时使用的 WaynesButtonState(或鼠标按下后拖出按钮时)。
Left
控件左边缘距其容器的水平偏移量(像素)。PixelCount。继承。
Name
控件在其父窗体上的唯一设计时名称。String。继承。
NormalState
按钮空闲时——未悬停、未焦点、未按下——使用的 WaynesButtonState。
PressedState
鼠标在按钮上按住时使用的 WaynesButtonState。
TabIndex
控件在窗体 TAB 键导航顺序中的位置。Long。继承。
TabStop
用户是否可以通过按 TAB 到达控件。Boolean。继承。默认:True。
Top
控件上边缘距其容器的垂直偏移量(像素)。PixelCount。继承。
Visible
控件当前是否显示。Boolean。继承。默认:True。
Width
控件的宽度(像素)。PixelCount。继承。
事件
Click
用户点击按钮时触发(鼠标按下 + 在控件内释放)。
语法:object_Click( )
GotFocus
控件获得键盘焦点时触发。
语法:object_GotFocus( )
KeyDown
控件具有焦点时用户按下按键触发。
语法:object_KeyDown( KeyCode As Integer, Shift As Integer )
KeyPress
控件具有焦点时用户输入字符键触发。
语法:object_KeyPress( KeyCode As Integer )
KeyUp
控件具有焦点时用户释放按键触发。
语法:object_KeyUp( KeyCode As Integer, Shift As Integer )
LostFocus
控件失去键盘焦点时触发。
语法:object_LostFocus( )
MouseDown
用户在控件上按下鼠标按钮时触发。
语法:object_MouseDown( Button As Integer, Shift As Integer, X As Single, Y As Single )
MouseEnter
光标首次进入控件时触发。
语法:object_MouseEnter( )
MouseLeave
光标离开控件时触发。
语法:object_MouseLeave( )
MouseMove
光标在控件上移动时触发。
语法:object_MouseMove( Button As Integer, Shift As Integer, X As Single, Y As Single )
MouseUp
用户在控件上释放鼠标按钮时触发。
语法:object_MouseUp( Button As Integer, Shift As Integer, X As Single, Y As Single )