如何改掉键盘的功能

fallback 2004-12-27 10:10:50
比如:小键盘0(vbKeyNumpad0),常规为0数字,现在想不执行0 ,改为按vbKeyNumpad0之后为触发自定义事件,是否可行,如何操作?
谢谢!
...全文
143 点赞 收藏 6
写回复
6 条回复
tztz520 2004年12月27日
你测试一下.
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Debug.Print KeyCode'看一下KeyCode有什么不同
End Sub

系统上的小键盘的0就是96
ret = RegisterHotKey(Me.hWnd, &HBFFF&, 0, 96)'这样就注册了小键盘上的0,你也可以根据KeyCode注册不同的按键
回复 点赞
fallback 2004年12月27日
TO: tztz520(午夜逛街)

我有个小键盘,功能跟键盘上的小键盘一样,那样子可以区别出是外接键盘还是系统上的键盘吗
回复 点赞
tztz520 2004年12月27日
'下面的代码可以实现.就是将小键盘的0注册为热键.

Private Const PM_REMOVE = &H1
Private Const WM_HOTKEY = &H312
Private Type POINTAPI
x As Long
y As Long
End Type
Private Type Msg
hWnd As Long
Message As Long
wParam As Long
lParam As Long
time As Long
pt As POINTAPI
End Type


Private Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
Private Declare Function UnregisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long) As Long
Private Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As Msg, ByVal hWnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long
Private Declare Function WaitMessage Lib "user32" () As Long
Private bCancel As Boolean
Public Sub ProcessMessages()
Dim Message As Msg
Do While Not bCancel
WaitMessage
If PeekMessage(Message, Me.hWnd, WM_HOTKEY, WM_HOTKEY, PM_REMOVE) Then
Debug.Print "你按了小键盘的0"
End If
DoEvents
Loop
End Sub


Private Sub Form_Load()
Dim ret As Long
bCancel = False
ret = RegisterHotKey(Me.hWnd, &HBFFF&, 0, 96)
Show
ProcessMessages
End Sub
Private Sub Form_Unload(Cancel As Integer)
bCancel = True
Call UnregisterHotKey(Me.hWnd, &HBFFF&)
End Sub
回复 点赞
cindytsai 2004年12月27日
看看:
http://community.csdn.net/Expert/topic/3663/3663735.xml?temp=.9183313
回复 点赞
tztz520 2004年12月27日
不客气 :)
回复 点赞
fallback 2004年12月27日
谢谢: tztz520(午夜逛街) !
回复 点赞
发动态
发帖子
VB基础类
创建于2007-09-28

2748

社区成员

19.7w+

社区内容

VB 基础类
社区公告
暂无公告