PB中用enter键模拟tab键的效果
PB中用enter键模拟tab键的效果,网上有一种方法:在datawindow中扩展出pbm_dwnprocessenter事件,加入代码:
Send( Handle( This),256,9,Long(0,0))
Return 1
这个方法流传很广,也害了不少人,因为它只能在datawindow中使用,并且功能有限。
如果我们使用一个API调用:keybd_event就能很好的解决这个问题了。定义如下:
SUBROUTINE keybd_event(UInt bVk,UInt bScan,Long dwFlags,Long dwExtraInfo ) LIBRARY 'user32.dll'
bVk 指需要模拟的击键(9-TAB,13-ENTER,16-SHIFT,17-CTRL,91-Left Windows key,46-DEL等)
bScan 未使用
dwflags =0 ,按下 = 2 ,释放
dwExtraInfo 附加的值,没什么用
下面在登录窗口w_login中加入这个功能,在key事件中加入如下代码:
GraphicObject which_control
which_control = GetFocus()
CHOOSE CASE TypeOf(which_control)
CASE CommandButton!
which_control.TriggerEvent(Clicked!)
CASE SingleLineEdit!
IF Key = KeyEnter! THEN
keybd_event ( 9, 0, 0 , 0 ) // 按下tab
keybd_event ( 9, 0, 2, 0 ) // 释放tab
END IF
END CHOOSE
RETURN 1
文本框中自行跳转,遇到按钮则模拟点击。 学习了
先收藏再说
页:
[1]