Мой WndProc не видит уведомлений о наведении мыши, когда я нажимаю, нажимая клавишу-модификатор (Shift или Control). Я вижу их без клавиши-модификатора и вижу уведомления мыши с клавишами-модификаторами.
Я пытаюсь отследить действия пользователя в компоненте, который не написал, поэтому использую оболочку Windows Forms NativeWindow (оболочку для компонента) для получения сообщений Windows из метода WndProc ().
Я пытался отслеживать уведомления, которые я получаю, и я вижу только подсказку WM_CAPTURECHANGED. Я пытался вызвать SetCapture, когда получаю сообщение WM_LBUTTONDOWN, но это не помогает.
Без модификатора (пропуская рисование, таймер и сообщения NCHITTEST):
WM_PARENTNOTIFY
WM_MOUSEACTIVATE
WM_MOUSEACTIVATE
WM_SETCURSOR
WM_LBUTTONDOWN
WM_SETCURSOR
WM_MOUSEMOVE
WM_SETCURSOR
WM_LBUTTONUP
С модификатором (пропуск краски, таймера и сообщений NCHITTEST):
WM_KEYDOWN
WM_PARENTNOTIFY
WM_MOUSEACTIVATE
WM_MOUSEACTIVATE
WM_SETCURSOR
WM_LBUTTONDOWN
WM_SETCURSOR (repeats)
WM_KEYDOWN (repeats)
WM_KEYUP
Если я удерживаю кнопку мыши в течение длительного времени, я обычно получаю уведомление WM_LBUTTONUP, но должна быть возможность сделать его более отзывчивым ..
Редактировать: я пытался щелкнуть мышью по управляющему элементу за пределами интересующего компонента и переместить курсор в него, прежде чем отпустить кнопку мыши, а затем я получил уведомление WM_LBUTTONUP, так что похоже, что компонент захватывает мышь мышь вниз. Есть ли способ получить это уведомление, когда другое окно захватило мышь?
Спасибо.