怎么在数据窗口中用左箭头实现shift+tab

 

问:各位大侠:我想在PB中获得一个象foxpro那样的编辑环境,即按左箭头光标便移动到当前列的左边一列,按右箭头光标便移动到右边一列,请问有什么办法?特急!!!

 

答:声明函数:

subroutine keybd_event(uint bVk,uint bScan,long dwFlags,long dwExtraInfo ) library 'user32.dll'

 

定义用户事件keydown: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! then

    keybd_event(VK_TAB,0,0,0) //按下tab

    keybd_event(VK_TAB,0,2,0) //释放tab

    return 1

end if

 

此题由摆渡人工作室站长ferryman回答

 

kukoc 再提供另一种解决方法(比较原始,但也能实现):

function boolean GetKeyboardState (ref char kbarray[256]) library "user32.dll"

function boolean SetKeyboardState (ref char kbarray[256]) library "user32.dll"

 

//脚本:用户事件keydown:pbm_dwnkey

 

char lc_kb[256]

if key = KeyLeftArrow! then

    GetKeyboardState (lc_kb)

    lc_kb[17] = Char (128)

    SetKeyboardState (lc_kb)

    Send (Handle (this), 256, 9, 0)

    GetKeyboardState (lc_kb)

    lc_kb[17] = Char (0)

    SetKeyboardState (lc_kb)

end if

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值