我需要按下TAB或Enter键时发送的WM。 检查此列表(我不知道这是否是完整的WM列表): http://www.pinvoke.net/default.aspx/Constants/WM.html 我尝试了几种WM:
WM_CHAR
WM_KEYDOWN
但这一切都不关心TAB和Enter。 有没有与这些密钥有关的WM? 谢谢!
更新 这是我使用的代码:
Class NW
Inherits NativeWindow
Public Sub New(hwnd As IntPtr)
AssignHandle(hwnd)
End Sub
Const WM_CHAR As Integer = &H102
Protected Overrides Sub WndProc(ByRef m As Message)
If m.Msg = WM_CHAR Then
Return
End If
MyBase.WndProc(m)
End Sub
End class
答案 0 :(得分:0)
假设您能够捕获这些密钥,应该为WM_CHAR
,因为它们都只是键盘上的字符。
但我怀疑你所经历的是这样一个事实,即你所控制的是捕获这些键并自己解释它们,选项卡导航到下一个控件和输入以选择默认操作。
由于WM_CHAR
消息是在TranslateMessage()
中构建的,以响应WM_KEYDOWN
消息,因此它允许在该级别进行拦截,您甚至可能永远不会看到 { {1}}消息。
要实际详细查看哪些邮件发送到您的Windows程序,以便了解正在发生的情况,您可以使用WM_CHAR
菜单中提供的Spy++,至少在VS2013中。