Skip to content

热键控件(HotKey) ​

提供 Windows 标准热键输入控件,允许用户选择快捷键组合。

枚举 ​

HkeInvalidKeyCombinationConstants ​

常量值说明
HkeInvalidKeyCombinationNone1无效组合:无修饰键
HkeInvalidKeyCombinationShift2无效组合:仅 Shift
HkeInvalidKeyCombinationCtrl4无效组合:仅 Ctrl
HkeInvalidKeyCombinationAlt8无效组合:仅 Alt
HkeInvalidKeyCombinationShiftCtrl16无效组合:Shift+Ctrl
HkeInvalidKeyCombinationShiftAlt32无效组合:Shift+Alt
HkeInvalidKeyCombinationCtrlAlt64无效组合:Ctrl+Alt
HkeInvalidKeyCombinationShiftCtrlAlt128无效组合:Shift+Ctrl+Alt

属性 ​

Name ​

vb
Property Get Name() As String

返回控件的名称。

Tag ​

vb
Property Get/Let Tag() As String

返回/设置控件的标记值。

Parent ​

vb
Property Get Parent() As Object

返回控件的父对象。

Container ​

vb
Property Get/Set Container() As Object

返回/设置控件的容器。

Left ​

vb
Property Get/Let Left() As Single

返回/设置控件左边缘的位置。

Top ​

vb
Property Get/Let Top() As Single

返回/设置控件上边缘的位置。

Width ​

vb
Property Get/Let Width() As Single

返回/设置控件的宽度。

Height ​

vb
Property Get/Let Height() As Single

返回/设置控件的高度。

Visible ​

vb
Property Get/Let Visible() As Boolean

返回/设置控件是否可见。

ToolTipText ​

vb
Property Get/Let ToolTipText() As String

返回/设置控件的工具提示文本。

HelpContextID ​

vb
Property Get/Let HelpContextID() As Long

返回/设置控件的帮助上下文 ID。

WhatsThisHelpID ​

vb
Property Get/Let WhatsThisHelpID() As Long

返回/设置控件的"这是什么"帮助 ID。

DragIcon ​

vb
Property Get/Let/Set DragIcon() As IPictureDisp

返回/设置拖动操作时显示的图标。

DragMode ​

vb
Property Get/Let DragMode() As Integer

返回/设置拖动模式(手动或自动)。

hWnd ​

vb
Property Get hWnd() As LongPtr

返回热键控件的窗口句柄。

hWndUserControl ​

vb
Property Get hWndUserControl() As LongPtr

返回 UserControl 的窗口句柄。

Font ​

vb
Property Get/Let/Set Font() As StdFont

返回/设置控件使用的字体。

VisualStyles ​

vb
Property Get/Let VisualStyles() As Boolean

返回/设置是否启用视觉样式。

Enabled ​

vb
Property Get/Let Enabled() As Boolean

返回/设置控件是否可用。

OLEDropMode ​

vb
Property Get/Let OLEDropMode() As OLEDropModeConstants

返回/设置 OLE 放置模式。参见通用枚举。

MousePointer ​

vb
Property Get/Let MousePointer() As CCMousePointerConstants

返回/设置鼠标指针类型。参见通用枚举。

MouseIcon ​

vb
Property Get/Let/Set MouseIcon() As IPictureDisp

返回/设置自定义鼠标图标。

MouseTrack ​

vb
Property Get/Let MouseTrack() As Boolean

返回/设置是否启用鼠标进入/离开跟踪。

BackColor ​

vb
Property Get/Let BackColor() As OLE_COLOR

返回/设置控件的背景色。

BorderStyle ​

vb
Property Get/Let BorderStyle() As CCBorderStyleConstants

返回/设置控件的边框样式。参见通用枚举。

Value ​

vb
Property Get/Let Value(Optional ByRef Modifiers As Integer) As VBRUN.KeyCodeConstants

返回/设置热键的键码。Modifiers 参数接收修饰键标志(Shift=1, Ctrl=2, Alt=4)。

RawValue ​

vb
Property Get/Let RawValue() As Long

返回/设置热键的原始数值(低字节为键码,高字节为修饰键标志)。

Text ​

vb
Property Get Text() As String

返回热键的显示文本。只读。

方法 ​

OLEDrag ​

vb
Public Sub OLEDrag()

启动 OLE 拖动操作。

Drag ​

vb
Public Sub Drag(Optional ByRef Action As Variant)

开始、结束或取消拖动操作。

SetFocus ​

vb
Public Sub SetFocus()

将焦点移到该控件。

ZOrder ​

vb
Public Sub ZOrder(Optional ByRef Position As Variant)

设置控件在其层级中的 Z 顺序位置。

Refresh ​

vb
Public Sub Refresh()

强制完全重绘控件。

SetRules ​

vb
Public Sub SetRules(ByVal InvalidKeyCombinations As HkeInvalidKeyCombinationConstants, Optional ByVal DefaultModifiers As VBRUN.ShiftConstants)

设置无效键组合规则和默认修饰键。InvalidKeyCombinations 指定不允许的修饰键组合,DefaultModifiers 指定用户输入无效组合时替换为的默认修饰键。

SetApplicationHotKey ​

vb
Public Function SetApplicationHotKey(Optional ByVal hWnd As LongPtr) As Long

将当前热键注册为窗口的应用程序热键。返回值为 WM_SETHOTKEY 消息的返回值。

事件 ​

Click ​

vb
Public Event Click()

单击控件时发生。

DblClick ​

vb
Public Event DblClick()

双击控件时发生。

Change ​

vb
Public Event Change()

热键值发生变化时发生。

PreviewKeyDown ​

vb
Public Event PreviewKeyDown(ByVal KeyCode As Integer, ByRef IsInputKey As Boolean)

在 KeyDown 事件之前发生,可设置 IsInputKey 标记按键是否为输入键。

PreviewKeyUp ​

vb
Public Event PreviewKeyUp(ByVal KeyCode As Integer, ByRef IsInputKey As Boolean)

在 KeyUp 事件之前发生。

KeyDown ​

vb
Public Event KeyDown(KeyCode As Integer, Shift As Integer)

按下键盘键时发生。

KeyUp ​

vb
Public Event KeyUp(KeyCode As Integer, Shift As Integer)

释放键盘键时发生。

KeyPress ​

vb
Public Event KeyPress(KeyChar As Integer)

按下并释放字符键时发生。

MouseDown ​

vb
Public Event MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

按下鼠标按钮时发生。

MouseMove ​

vb
Public Event MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

移动鼠标时发生。

MouseUp ​

vb
Public Event MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

释放鼠标按钮时发生。

MouseEnter ​

vb
Public Event MouseEnter()

鼠标进入控件时发生。

MouseLeave ​

vb
Public Event MouseLeave()

鼠标离开控件时发生。

OLECompleteDrag ​

vb
Public Event OLECompleteDrag(Effect As Long)

OLE 拖放操作完成或取消后,在源控件上发生。

OLEDragDrop ​

vb
Public Event OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)

数据通过 OLE 拖放操作放置到控件上时发生。

OLEDragOver ​

vb
Public Event OLEDragOver(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single, State As Integer)

OLE 拖放操作期间鼠标移过控件时发生。

OLEGiveFeedback ​

vb
Public Event OLEGiveFeedback(Effect As Long, DefaultCursors As Boolean)

OLE 拖放操作期间需要更改鼠标光标时,在源控件上发生。

OLESetData ​

vb
Public Event OLESetData(Data As DataObject, DataFormat As Integer)

放置目标请求数据时,在源控件上发生。

OLEStartDrag ​

vb
Public Event OLEStartDrag(Data As DataObject, AllowedEffects As Long)

OLE 拖放操作启动时发生。

代码示例 ​

基本用法 ​

vb
Private Sub Form_Load()
    With HotKey1
        .SetRules HkeInvalidKeyCombinationNone Or _
                   HkeInvalidKeyCombinationShift, vbCtrlMask
        .VisualStyles = True
    End With
End Sub

Private Sub HotKey1_Change()
    Dim Modifiers As Integer
    Dim KeyCode As VBRUN.KeyCodeConstants
    KeyCode = HotKey1.Value(Modifiers)
    Debug.Print "热键: " & HotKey1.Text
    Debug.Print "原始值: " & HotKey1.RawValue
End Sub

Private Sub cmdRegisterHotKey_Click()
    Dim Result As Long
    Result = HotKey1.SetApplicationHotKey(Me.hWnd)
    If Result = 1 Then
        Debug.Print "热键注册成功"
    Else
        Debug.Print "热键注册失败"
    End If
End Sub

twinBASIC及其LOGO版权为作者"韦恩"所有