使用示例
您一定对“Ctrl+Alt+Z”很熟悉吧?没错,它是QQ里打开消息对话框的默认热键,通过这组热键,我们可以很迅速的打开消息对话框查看,大大加快我们操作的速度。同时我们也知道,在QQ的系统设置中可以对热键进行设置(如图1),当我们按下任何热键组合时,文本框都会实时显示热键组合,让用户明白当前按下的热键是什么。
图1 |
热键可以大大加快使用者的操作速度,对于开发者来说,在自己的程序中使用热键同样会使操作更简便、使得程序更加人性化。那么你是否也想实现像QQ中那样的可以让用户自由设置的热键编辑框呢?下面我们就通过使用示例,介绍一个很实用的控件ccrpHotKey,它可以帮助你轻松实现强大的热键功能。
ccrpHotKey控件的外观以及许多属性都跟我们熟悉的文本框的属性相类似,因此我们可以很轻松的对其进行设置。
第一步:首先启动Visual Basic 6.0,新建一个窗口。
第二步:加载ccrpHotKey控件,设置其属性。
①在控件工具栏中单击右键,选择“部件”,在弹出的窗口中点击“浏览”,找到ccrpHotKey控件,载入它;把它添加到Form1窗体中适当位置即可。
②修改ccrpHotKey控件属性。选中ccrpHotKey控件后,在属性设置区域可以对其进行设置,其中的按键组合设置最为重要(如图2),你可以根据需要设置允许或者禁止某些组合,如要禁止“Ctrl+Alt”的组合,就将AllowCtrlAlt属性改为False即可,依此类推。当然,我们也可以在程序运行中动态地改变这些属性。
图2 |
第三步:加载其他控件,完成界面的设置。
①在窗体中添加用于设置热键和退出的2个CommandButton控件,名称分别为cmdSetHotKey和cmdExit,caption属性为“设置热键”和“退出”。
②添加一个frame控件,caption为“热键信息”;在其中添加两个Label标签,名称为lblKeyCode和lblShift,用来显示按下热键的KeyCode等信息。
完成后的界面如图3所示例。下面就开始代码的编写。
图3 |
第四步:编写代码,实现具体的功能。
①在通用区域定义要使用的变量,代码如下:
Private m_KeyCode As Integer Private m_Shift As Integer |
其中m_Shift用来存放热键的组合,m_KeyCode用来存放热键中具体字母或者数字等的KeyCode值。
②申明程序中要使用的过程,代码如下
Private Sub DisplayKeyCode() lblKeyCode.Caption = "KeyCode: " & Str$(ccrpHotKey1.KeyCode) lblShift.Caption = "Shift: " & Str$(ccrpHotKey1.Shift) End Sub |
这段代码用于设置两个Lable标签的Caption,当ccrpHotKey1的KeyDown事件发生时候触发这个过程,使两个Label标签显示当前热键的KeyCode值。
③编写ccrpHotKey控件的代码,分别在ccrpHotKey控件得到焦点、按下按键和失去焦点时调用DisplayKeyCode过程:
Private Sub ccrpHotKey1_GotFocus() DisplayKeyCode End Sub Private Sub ccrpHotKey1_KeyDown(KeyCode As Integer, Shift As Integer) DisplayKeyCode End Sub Private Sub ccrpHotKey1_LostFocus() DisplayKeyCode End Sub |
为什么要在得到焦点和失去焦点的事件中也调用过程呢?这样是为了确保Label标签显示的热键信息准确,和ccrpHotKey保持同步。
④编写保存热键的代码:
Private Sub cmdSetHotKey_Click() m_KeyCode = ccrpHotKey1.KeyCode m_Shift = ccrpHotKey1.Shift End Sub |
将设置好的热键保存在两个变量中,以供调用。
⑤加入窗体的KeyDown事件,以测试效果。
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = m_KeyCode And Shift = m_Shift Then MsgBox "按下了热键: KeyCode = " & Str(KeyCode) & "; Shift = " & Str(Shift) End If End Sub |
若按下的键与设置的热键一致,则弹出对话框显示热键相关信息。
到这里,这个简单的演示程序就完成了,按下F5运行程序,点击ccrpHotKey控件,按下任意热键组合,ccrpHotKey控件就会实时地显示你当前按下的热键,并且右边的Label会显示热键信息(如图4)。
图4 |
选中一个热键后,点击“保存按钮”,再按下刚保存的热键,程序就会弹出对话框(如图5),演示成功!
图5 |
通过这个控件,我们可以实现让用户自己设定热键,并且实时显示热键的功能,使得程序更加人性化。我们还可以通过API函数将获得的ccrpHotKey1.KeyCode和ccrpHotKey1.shift值保存为系统热键,这样即使程序没有获得焦点,热键仍然可以使用。开动你的脑筋,相信ccrpHotKey控件可以帮你打造出更完美的热键功能!