VB6.0中 有二个Form, FormA与FormB, 每个Form 有二个文本框,二个按钮.
要求:
现在不管光标在哪里
在FormA 在激活时,当按Tab,方向键上,下,左,右,分别显示a,b,c,d,e
在FormB 在激活时,当按Tab,方向键上,下,左,右,分别显示A,B,C,D,E
也就是说,在VB 中抓住 tab,方向键,虽然有些钩子方法能实现,但是它的识别键的方法是写在模块中的.我想把识别键的方法放到form中,也就是说每个Form有它自己键的定义.
请客位高手给在下,指点一下迷津.谢了.
要求:
现在不管光标在哪里
在FormA 在激活时,当按Tab,方向键上,下,左,右,分别显示a,b,c,d,e
在FormB 在激活时,当按Tab,方向键上,下,左,右,分别显示A,B,C,D,E
也就是说,在VB 中抓住 tab,方向键,虽然有些钩子方法能实现,但是它的识别键的方法是写在模块中的.我想把识别键的方法放到form中,也就是说每个Form有它自己键的定义.
请客位高手给在下,指点一下迷津.谢了.
hook+activeform
Public Function KeyboardProc(ByVal idHook As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim lstrFlag As String
'if idHook is less than zero, no further processing is required
If idHook < 0 Or idHook = 3 Then
'call the next hook
KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
Else
lstrFlag = Left$(Format$(DEC_to_BIN(lParam), String(32, "0")), 1)
If ActiveForm Is Form1 Then
If lstrFlag = "0" Then 'down
If wParam = vbKeyTab Then
Form1.Print "Tab down ..."
End If
Else 'up
If wParam = vbKeyTab Then
Form1.Print "Tab up ..."
End If
End If
End If
'call the next hook
KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
End If
End Function
按TAB跳轉時,每個控件有GotFocus事件。
在那裏處理就行了。