WndProc отсутствует событие WM_KEYUP в Windows 7 - PullRequest
0 голосов
/ 11 июля 2019

Я только что написал класс текстового поля для захвата событий WM_KEYDOWN / WM_KEYUP / WM_SYSKEYDOWN / WM_SYSKEYUP:

Public Class MyTextbox
    Inherits TextBox

    Public Const WM_KEYDOWN = &H100
    Public Const WM_KEYUP = &H101
    Public Const WM_SYSKEYDOWN = &H104
    Public Const WM_SYSKEYUP = &H105

    Protected Overrides Sub WndProc(ByRef m As Message)

            Select Case m.Msg
                Case WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, WM_SYSKEYUP

                    Dim vk = m.WParam
                    Form1.ListBox1.Items.Add(m.Msg.ToString & " - " & vk.ToInt64)
            End Select

            MyBase.WndProc(m)


    End Sub


End Class

Это хорошо работает в Windows 10. Когда я нажимаю клавишу Ctrl + Shift, я получаю 4 строки (клавиши вверх и вниз для Ctrl + Shift) в списке

Однако в Windows 7, когда я нажимаю клавишу Ctrl + Shift, при событии KEYUP оно отсутствует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...