首 页 高校招生 - 高级研修 - 教育新闻 - 学习资料 - 搜索中心 - 北斗论坛 - 名校荟萃   外语 - 计算机 - 考研 - 职业资格 - 艺术体育 - 中小学  

 
·教育搜索 EDUSOU
| 计算机 > 程序设计 > 正文 进入 教育人生网总站

在PB中实现热键的方法

2007-08-02    教育人生网    浏览:0    进入论坛>>

在PB中实现热键的方法
  如果你能在你的应用程序中添加一些热键,就可以加快用户的操作速度,特别是对那些熟练的操作人员,他们特别欢迎快捷键的操作方式。在不少大型应用软件中,用户可以通过使用Ctrl+Alt+F5之类的组合键来方便地进行功能切换和处理。那么,我们在用PowerBuilder开发应用程序时,怎样在其中实现需要的热键功能呢?下面笔者就根据自身的经验,介绍两种实用的方法。


  第一种方法:

  该方法可以实现:无论何时,只要用户按下热键,都将触发窗口中的事件。

  1.声明 API的外部函数

  FUNCTION Integer GlobalAddAtom(ref string lpString) LIBRARY "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 = 1

  constant integer MOD-CONTROL = 2

  constant integer MOD-SHIFT = 4

  3.利用代码在系统中注册要使用的热键

  //在窗口的Open事件中

  long ll-RC

  string ls-str

  ls-str = "My atom ID"

  atomid = GlobalAddAtom(ls-str) //得到惟一的ID,保证不和其他应用程序发生冲突

  ll-RC = RegisterHotKey(Handle(this), atomid, MOD-ALT + MOD-CONTROL, 65)

  // 65为‘A’,注册的热键为Ctrl+Alt+A

  if ll-RC = 0 then

  messagebox("错误","错误信息")

  end if

  4.编写按下热键时的处理程序

  //在窗口的Other事件中

  IF wparam = atomid THEN

  //在这里编写处理程序

  END IF

  第二种方法:

  1.声明 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码。如果我们要使用Ctrl+Alt+A作为热键,则A=65,转换成十六进制为41,Ctrl+Alt=2+4=6,转换成十六进制仍然是6,两则组合即为641,再重新转换回十进制得到1601;同样,如果我们用Ctrl+Alt+F1作为热键,F1=112,可以得到HK-MYHOTKEY值应为1648。

实用导航:高考 | 考研 | 自考 | 在职研 | 外语 | IT | 公务员 | MBA | 舞蹈
推荐:如何戴上硕士帽 | 上海培训学校大全 | 学习交流交友 | 外语学习资料

特别说明:由于各方面情况的不断调整与变化,教育人生网所提供的所有考试信息仅供参考,敬请考生以权威部门公布的正式信息为准。

来源:网络    责任编辑:GTF  


 相关资讯 关键字:  相关课程

 ·操作系统基础知识  2007-8-2
 ·磁盘阵列的选购要素  2007-8-2
 ·操作系统进程  2007-8-2
 ·Windows操作系统中的.NET Framewor..  2007-8-2
 ·AIX操作系统下Sendmail的使用  2007-8-2
 ·Solaris系统管理培训:安装Solaris..  2007-8-2

 ·[北大青鸟]ACCP 4.0软件工程师(第..  ¥8440.00
 ·[北京巨人]高级JAVA程序员班  ¥13230.00
 ·[八方永信]软件工程JAVA开发工程师..  ¥17800.00
 ·[金海计..]VC++程序设计培训班  ¥500.00
 ·[文华学院]Java 2双证班  ¥3730.00
 ·[水木教育]Java软件工程师企业级项..  ¥2800.00

 
主编推荐 更多   最新资讯 更多   经典下载 更多
2008英语四六级考前辅导专题
2008英语四六级考前辅导专题
 
 网上报名 优惠便捷
 
 
 求学热点关注
研修 | MBA/EMBA 在职研究生 短训研修
学历 | 普通高校 自考成考 网络院校 中外合作
外语 | 中高级口译 日语 四六级 新概念 雅思
综合英语 商务英语 口语听力 小语种 托福
职业 | 报关报检 物流 会计上岗证 会计电算化
外贸
其他 | IT职业 平面设计 网页设计 辅助设计 考研 中小学辅导 夏令营 舞蹈 瑜珈 音乐
 
 
 论坛精华 求学交友
雅思 |
张红岩《TOEFL iBT词以类记》完整版(..
日语 |
新版 标日在线教学视频 初上1
口译 |
上海中高级口译考试全解析专题
考研 |
微观经济学(高鸿业)各章重点小结PDF
职业 |
【职业资格专题】邮政营业员试题
舞蹈 |
舞蹈大比拼,选择你喜欢[舞蹈特别专题]
 
 热点专题
IT就业培训
 
上海中高级口译完全解析
2008英语四六级考前辅导
教育人生网真题中心正式上线
上海中高级口译考试全解析
在职研究生报考指南
2007年12月四六级真题
2000-2007日语能力考真题..
2008在职硕士备考指南
2008年注册会计师备考专题
高等教育自学考试完全指南

教育新闻 - 免费资料 - 搜索中心 - 名校荟萃 - 北斗论坛 - 会员中心 - 主编信箱 - 网站地图 - 欢迎批评指正 设定本页为浏览器首页
教育人生网简介 - 联系我们 - 招贤纳士 - 客服中心 - 免责声明 - 广告服务 - 火爆加盟 - 中国教育搜索