Есть главное окно, на этом главном окне расположен некий визуальный компонент. Используя SetCapture в этот визуальный компонент всегда приходят сообщения от мышки.То есть даже если окно не в фокусе и по верх него есть другое окно.
Часть элемента видна часть загорожена другим окном. Сейчас сообщения приходят всегда, не важно курсор в видимой части или в загороженной.
И я бы хотел узнать по положению курсора и hwnd элемента находится ли курсор в видимой части окна. Чтобы игнорировать сообщения когда курсор движется по невидимой части.
Делал ли кто-нибудь что-то подобное?
SetCapture - предназначена для захвата управления мышью. При "захвате" наблюдается такое поведения: события поступают в обработчик, даже если мышь находится вне зоны действия окна. В default-обработчике событий - захват происходит автоматически. Для отключения такого поведения - используйте ReleaseCapture(), в большинстве случае вызов ReleaseCapture() ставят в click-событие, там где нежелательно такое поведение. Узнать состояние можно GetCapture(). Вызов ReleaseCapture() - не отменяет посыл окну сообщений WM_MOUSEMOVE и т п в случае когда событие действительно относится к даному окну (наоборот мышь не перехватывает в даном случае другое окно).
По координатам мыши - всегда можно узнать хандл окна, вызвав WindowFromPoint.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей