VB中利用ccrpHotKey控件设置热键

发表于:2007-05-25来源:作者:点击数: 标签:ccrpHotKey热键利用控件设置
简介 :ccrphotkey是一个第三方控件,该控件可以轻松实现热键功能 使用示例 您一定对Ctrl+Alt+Z很熟悉吧?没错,它是QQ里打开消息对话框的默认热键,通过这组热键,我们可以很迅速的打开消息对话框查看,大大加快我们操作的速度。同时我们也知道,在QQ的系
 简介:ccrphotkey是一个第三方控件,该控件可以轻松实现热键功能

  使用示例

  您一定对“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控件可以帮你打造出更完美的热键功能!

原文转自:http://www.ltesting.net