在PB中实现热键功能的方法

转载 2006年05月18日 20:44:00

在PB中实现热键功能的方法  (张 涛)

 

在程序中添加一些热键可以让用户更加快速实现某些功能,对于一些熟练的操作人员,他们更容易接受快捷键。例如大家熟悉的金山词霸,一般情况下她处在系统光标区,用户可以通过Ctrl+Alt+F1组合键来切换是否屏幕取词。那么如何让我们的程序也能实现这个功能呢?下面作者就介绍实现方法:
    1、首先我们必须声明Windows API的外部函数:
          function long SendMessageA(long lhWnd,uint uiMsg,long lwMsg,long lwParam) library 'user32.dll'
    2、接下来,我们必须给一些需要用到的定量赋上初始值。
    Public:
        Constant Long WM_SETHOTKEY = 50 //设置热键消息值
        Constant Long HK_MYHOTKEY = 1648 //热键参数值
        Constant Long SC_HOTKEY = 61776 //PB中的热键消息
    其中,HK_MYHOTKEY不是固定的,它根据用户的需要而定。它的具体值通过如下方法确定的:高8位字节 + 低8位字节组成16为字节,然后将她换算到十进制即得到所需的HK_MYHOTKEY值。高8位字节值为一些辅助键(Control、Alt、Shift等),低8位字节为你想使用的键的ASCII码。例如:A=65..Z=90,Shift=1,Control=2,Alt=4,Extended=8,F1=112..F12=123等,如果我们要使用Ctrl+Alt+A作为热键,则A=65,转换成十六进制为41,Ctrl+Alt=2+4=6,转换成十六进制仍然是6,两则组合即为641,再重新转换回十进制得到1601;同样,如果我们用Ctrl+Alt+F1作为热键,F1=112,可以得到HK_MYHOTKEY值应为1648。
    3、接下来,我们必须利用下面代码告诉窗口我们的热键:
//在窗口的Open事件中
long ll_RC

ll_RC = SendMessageA(Handle(this), WM_SETHOTKEY, HK_MYHOTKEY, 0)
if ll_RC <> 1 then
messagebox("错误","错误信息")
end if
    4、最后,编写当用户按下热键时的处理程序:
//在窗口的Other事件中
IF wparam = SC_HOTKEY THEN
    This.Show()
//在这里编写处理程序
END IF

windowsSDK实现 屏幕实时监控 热键截图 功能

为了自己做出一个远控程序,自己花了点时间学习了有关绘图方面的知识点。 一.基本概念的了解 为了实现实时屏幕显示的功能,首先学习了下《windows程序设计》的第14章,位图和位块的传输。 ...

javascript实现添加收藏功能,对于Chrom,webkit内核浏览器提醒热键添加

aaa function hotKeys() { var ua = navigator.userAgent.toLowerCase(); var str = ''; var ...

MFC--快捷键(组合键/热键)与按钮实现操作按钮的方法

如题: 首先插入一按钮,将其visible属性设为False,ID如设为:IDC_BTN_FASTKEY; 然后双击它,进入代码编辑界面,编辑代码,实现所要的功能; 最后如下操作添加...

C#实现全局热键响应,失去焦点情况下响应全局快捷键的方法

C#实现全局热键响应,失去焦点情况下响应全局快捷键       1 、引入API注册和注销热键的函数,建立一个类文件,命名为 HotKey.cs ,代码如下: using System;...
  • lvhejin
  • lvhejin
  • 2011年08月29日 14:23
  • 846

MFC--快捷键(组合键/热键)与按钮实现操作按钮的方法

首先插入一按钮,将其visible属性设为False,ID如设为:IDC_BTN_FASTKEY; 然后双击它,进入代码编辑界面,编辑代码,实现所要的功能; 最后如下操作添加加速键: 1 插入一...

【笔记】C#实现快捷键(系统热键)响应的方法

在应用中,我们可能会需要实现像Ctrl+C复制、Ctrl+V粘贴这样的快捷键,本文简单介绍了它的实现,并给出了一个实现类。...
  • ljx5790
  • ljx5790
  • 2016年06月16日 00:42
  • 137

QQ全局热键截图功能

  • 2011年06月16日 17:52
  • 81KB
  • 下载

支持web全局热键的jquery插件源码,仿office2007的alt键功能。

支持web全局热键的jquery插件源码,仿office2007的alt键功能。 可以在页面上实现全局快捷键的功能。...
  • SaRoot
  • SaRoot
  • 2011年03月03日 13:17
  • 1945

Qt5-控件-QMenu,QMenuBar-菜单栏详解-菜单热键-菜单校验功能

Qt5-控件-QMenu,QMenuBar-菜单栏详解-菜单热键-菜单校验功能 //mainwindo.h #ifndef MAINWINDOW_H #define MAINWI...
  • Jamence
  • Jamence
  • 2017年07月10日 19:39
  • 628
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在PB中实现热键功能的方法
举报原因:
原因补充:

(最多只允许输入30个字)