Захват мыши

Система обычно должности сообщение мыши окно, содержащее активной курсора тогда, когда происходит событие мыши. Это поведение можно изменить приложение, используя функцию SetCapture для маршрутизации сообщений мыши для определенного окна. Окно получает все сообщения от мыши до тех пор, пока приложение вызывает функцию ReleaseCapture или указывает другое окно захвата, или до тех пор, пока пользователь нажимает окно, созданное другим потоком.

Всякий раз, когда мышь записывать изменения, система посылает сообщение WM_CAPTURECHANGED в окно, которое теряет захват мыши. Параметр lParam сообщения указывает дескриптор окна, которое получает захват мыши.

Только окно переднего плана может захватить ввод от мыши. Когда фоновое окно пытается захватить ввода мыши, он получает сообщения только для событий мыши, которые происходят при активной курсора находится в видимой части окна.

Захват мыши ввода полезен, если окно должны получить все ввода мыши, даже когда курсор перемещается за окном. Например приложение как правило отслеживает позицию курсора после события «Кнопка вниз» мыши, после курсора до события «Кнопка вверх». Если приложение не захвачен ввода мыши и пользователь отпускает кнопку мыши вне окна, окно не получает кнопку сообщение.

Поток может использовать функцию GetCapture для определения ли один из его окон захватил мышь. Если один из потока windows захватил мышь, GetCapture получает дескриптор окна.

Index