Не существует такого понятия, как «захват клавиатуры».Есть только фокус клавиатуры.
Окно с фокусом клавиатуры является тем, которое получает сообщения, связанные с клавиатурой.Сообщения мыши обычно отправляются в окно под курсором мыши, независимо от фокуса.То есть, если мышь не «захвачена», в этом случае сообщения мыши отправляются в окна, которые захватили мышь, независимо от того, где находится курсор мыши.
Тем не менее, вам действительно нужно захватитьмышь?На самом деле это редко необходимо.И это должно быть сделано только как следствие действий пользователя, а не самостоятельно.
PS.Из соображений безопасности в Windows фактически существует два разных типа захвата мыши:
- Локальные захваты: сообщения мыши отправляются в окно захвата, только если мышь находится над окном, которое принадлежитто же приложение.
- Глобальный захват: сообщения мыши отправляются в окно захвата, независимо от того, где находится курсор мыши.
Функция SetCapture
создает глобальный захват только в том случае, есливызывается при обработке сообщения WM_? BUTTON_DOWN.