分享
分享赚钱 收藏 举报 版权申诉 / 2

类型在PB中实现热键的方法.doc

  • 上传人:精品资料
  • 文档编号:9704510
  • 上传时间:2019-08-26
  • 格式:DOC
  • 页数:2
  • 大小:15.63KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    在PB中实现热键的方法.doc
    资源描述:

    1、在 PB 中实现热键的方法如果你能在你的应用程序中添加一些热键,就可以加快用户的操作速度,特别是对那些熟练的操作人员,他们特别欢迎快捷键的操作方式。在不少大型应用软件中,用户可以通过使用 CtrlAltF5 之类的组合键来方便地进行功能切换和处理。那么,我们在用PowerBuilder 开发应用程序时,怎样在其中实现需要的热键功能呢?下面笔者就根据自身的经验,介绍两种实用的方法。第一种方法:该方法可以实现:无论何时,只要用户按下热键,都将触发窗口中的事件。1.声明 API 的外部函数FUNCTION Integer GlobalAddAtom(ref string lpString) LIBR

    2、ARY “kernel32.dll“ ALIAS FOR “GlobalAddAtomA“FUNCTION ulong RegisterHotKey(ulong hwnd,ulong id,ulong fsModifiers,ulong vk) LIBRARY “user32.dll“/hwnd 参数用于指定使用本热键的窗口句柄, id 参数用于指定一个惟一的 ID,fsModifiers参数指明辅助键值(Alt、Ctrl 、 Shift 等),vk 参数指明虚拟键的 ASCII 码。2.对常量赋初值Public:constant integer MOD-ALT = 1constant int

    3、eger MOD-CONTROL = 2constant integer MOD-SHIFT = 43利用代码在系统中注册要使用的热键/在窗口的 Open 事件中long ll-RCstring ls-strls-str = “My atom ID“atomid = GlobalAddAtom(ls-str) /得到惟一的 ID,保证不和其他应用程序发生冲突ll-RC = RegisterHotKey(Handle(this), atomid, MOD-ALT MOD-CONTROL, 65)/ 65 为 A,注册的热键为 CtrlAltAif ll-RC = 0 thenmessagebox

    4、(“错误“,“错误信息“)end if4编写按下热键时的处理程序/在窗口的 Other 事件中IF wparam = atomid THEN/在这里编写处理程序END IF第二种方法:1.声明 API 的外部函数function long SendMessageA(long lhWnd,uint uiMsg,long lwMsg,long lwParam) library user32.dll2.对常量赋初值Public:Constant Long WM-SETHOTKEY=50/设置热键信息值Constant Long HK-MYHOTKEY=1648 /热键参数值Constant Long

    5、 SC-HOTKEY=61776/PB 中的热键信息其中,HK-MYHOTKEY 不是固定的,它根据用户的需要而定。它的具体值的确定方法是:高8 位字节与低 8 位字节组成 16 位字节,然后将它换算成十进制数,即得到所需的 HK-MYHOTKEY 值。高 8 位字节值为一些辅助键(Control、Alt、Shift 等),低 8 位字节为使用键的 ASCII 码。如果我们要使用 CtrlAltA 作为热键,则 A=65,转换成十六进制为41, CtrlAlt=24=6 ,转换成十六进制仍然是 6,两则组合即为 641,再重新转换回十进制得到 1601;同样,如果我们用 CtrlAltF1 作为热键,F1=112,可以得到 HK-MYHOTKEY 值应为 1648。3.利用代码告诉窗口我们的热键/在窗口的 Open 事件中long ll-RCll-RC = SendMessageA(Handle(this), WM-SETHOTKEY, HK-MYHOTKEY, 0)if ll-RC 1 thenmessagebox(“错误“,“错误信息“)end if4.编写按下热键时的处理程序/在窗口的 Other 事件中IF wparam = SC-HOTKEY THEN/在这里编写处理程序END IF

    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:在PB中实现热键的方法.doc
    链接地址:https://www.docduoduo.com/p-9704510.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开