2010-03-03 3 views
0

В Cocoa Framework Mac OS X есть Tracking Rects, который позволяет вам зарегистрировать область вашего представления и получать сообщения обратного вызова, когда мышь входит или уходит.Каков наиболее эффективный способ отслеживания положения курсора мыши в Windows?

Есть ли аналогичный API в Windows? Я бы хотел избежать использования таймера для вызова GetCursorPos() для каждого интервала x.

Возможно, они названы совсем другими, и это довольно тривиально, но до сих пор я ничего не нашел.

ответ

2

TrackMouseEvent, это отправит вам сообщение WM_MOUSELEAVE, когда мышь покидает ваше окно, а также навешивает уведомления, если мышь не двигается некоторое время.

Если вы хотите, чтобы отслеживание было меньше вашего окна, чем вы должны сделать это самостоятельно.

1

Поймать WM_MOUSEMOVE в вашем окне.

+0

Это сообщение появляется только для публикации, если у меня нет мыши над дочерним элементом управления, как кнопка. – Drarok

+0

@Drarok: Вы можете поймать сообщение в своем цикле сообщений и не отправлять сообщение. Здесь вы можете конвертировать координаты или просто вызвать GetCursorPos(). Таким образом, вам не нужно подклассифицировать все ваши окна. –

1

Вы можете установить крючок мыши для захвата событий мыши.

Смежные вопросы