2010-10-22 3 views
1

При отправке сообщения WM_MOUSEMOVE в клиентскую область приложения (в данном случае Open Office Writer) изображение будет мерцать, как если бы мышь была над указанными координатами, но не осталась в этом состоянии , Код:SendMessage WM_MOUSEMOVE не работает должным образом

PostMessage (hWndClient, WM_MOUSEMOVE, 0, MAKEWORD (х, у))

где х и у являются относительно клиентской области.

Отправка этого в цикле все еще не работает, так как область, выделенная мышью над событием, просто мерцает.

Любая помощь будет оценена по достоинству.

+0

Какую цель вы пытаетесь достичь, отправив 'WM_MOUSEMOVE' в Open Office Writer? –

+0

Это своего рода многопользовательская вещь VNC, поэтому перемещение курсора с помощью SetCursorPos или то, к чему вы не будете работать, к сожалению. – ckg

+0

Вам удалось заставить его работать? Один из элементов управления, который я могу автоматизировать, не может работать до тех пор, пока не будет виден, поэтому мне нужно убедить программу, что кнопка зависает с помощью сообщений Windows. –

ответ

1

Приложение может запускаться во всевозможные другие события. Может быть, он хочет видеть WM_MOUSEHOVER и т. Д. Это было долгое время, но я помню, что было что-то действительно klugy о том, как некоторые из этих событий были реализованы - например, был отдельный поток, который опросил мышь и сгенерировал события WM_MOUSELEAVE, когда мышь больше не было над окном. Вы тоже можете укусить что-то подобное. Также возможно, что само приложение выполняет опрос мыши для своей истинной позиции, когда получает событие.

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

+0

Вы были правы, приложение вызывало GetWindowPos после сообщения WM_MOUSEMOVE. – ckg

1

я н, как это в моем главном окне и смотрит, что помогает ... в WM_MOUSEMOVE:

POINT Point; 
GetCursorPos(&Point); 
ScreenToClient(hHwnd, &Point); 
int X = Point.x; 
int Y = Point.y; 
Смежные вопросы