在窗口中实现按键盘上的特定键(如END、HOME键)触发某事件,应该怎么做?

qqzhouyf 2003-04-16 04:34:58
在窗口中实现按键盘上的特定键(如END、HOME键)触发某事件,应该怎么做?
...全文
87 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xirumin 2003-04-16
  • 打赏
  • 举报
回复
学习来了
th820901 2003-04-16
  • 打赏
  • 举报
回复
这要用到Windows中的API函数keybd_event()

①定义API:
Subroutine keybd_event(uint bVk,uint bScan,long dwFlags,long dwExtraInfo ) library "user32.dll"

②自定义一用户事件(ue_keydown ID:pbm_dwnkey):
integer VK_TAB = 09
integer VK_SHIFT = 16

if key = KeyLeftArrow! then
keybd_event(VK_SHIFT,0,0,0) //按下shift
keybd_event(VK_TAB,0,0,0) //按下tab
keybd_event(VK_TAB,0,2,0) //释放tab
keybd_event(VK_SHIFT,0,2,0) //释放shift
return 1
end if
if key = KeyRightArrow! or key=KeyEnter! then
keybd_event(VK_TAB,0,0,0) //按下tab
keybd_event(VK_TAB,0,2,0) //释放tab
return 1
end if

如若只是想利用ENTER键来实现TAB键的功能可以用以下代码:
if key=keyenter! then
Send(Handle(this),256,9,Long(0,0)) //发送TAB键
  Return 1 //取消原ENTER键的动作
end if

//希望能对你有帮助..

604

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 控件与界面
社区管理员
  • 控件与界面社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧