问:在子类中如何判断用户按了S键的同时,按了SHIFT键?
Private Function WndProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If uMsg = WM_CHAR OR UMSG=WM_KEYDOWN Then
.........
End If
END FUNCTION
Private Function WndProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If uMsg = WM_CHAR OR UMSG=WM_KEYDOWN Then
.........
End If
END FUNCTION
uVirtKey = vbKeyS
Ret = RegisterHotKey(Me.hwnd, idHotKey, Modifiers, uVirtKey) If Msg = WM_HOTKEY Then
If wParam = idHotKey Then
If CInt(lParam / 65536) = vbKeyS Then
Debug.Print "OK"
End If
End If
End If
If KeyCode = vbKeyS And Shift = 1 Then
Debug.Print "同时按了S键和SHIFT键组合键"
'Shift = 1 Shift
'Shift = 2 Ctrl
'Shift = 4 Alt
'Shift = 3 Shift + Ctrl
'Shift = 5 Shift + Alt
'Shift = 6 Ctrl + Alt
'Shift = 7 Ctrl + Alt + Shift
End If
End Sub
不知道这样行不行?
有空看看MSDN吧。
chCharCode = (TCHAR) wParam; // character code
lKeyData = lParam; // key data
应该保存在 lparam参数中了!
好像有一位表示!