在按下TAB键或Enter键的情况下发送哪个WM?

时间:2015-04-09 04:51:31

标签: windows-messages

我需要按下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

1 个答案:

答案 0 :(得分:0)

假设您能够捕获这些密钥,应该WM_CHAR,因为它们都只是键盘上的字符。

但我怀疑你所经历的是这样一个事实,即你所控制的是捕获这些键并自己解释它们,选项卡导航到下一个控件和输入以选择默认操作。

由于WM_CHAR消息是在TranslateMessage()中构建的,以响应WM_KEYDOWN消息,因此它允许在该级别进行拦截,您甚至可能永远不会看到 { {1}}消息。


要实际详细查看哪些邮件发送到您的Windows程序,以便了解正在发生的情况,您可以使用WM_CHAR菜单中提供的Spy++,至少在VS2013中。