2010-08-13 3 views
0

ok s очень легко создать мышь над событием, если объект НЕ перемещается. , но проблема в том, что объект будет перемещаться каждые 50 миллисекунд. это не строка, поэтому я могу создать скрипт, это круг. Я использовал для использования getcursorpos(). чем получить объект x и y. другая проблема заключается вC++ mouseover event

p X--------------------- 

y 
| 
|  
| 
|  cursor 
| 
| 
| 

, где он говорит, что р является положение больной получает по х и у. где находится курсор в середине, если плохо получить позицию курсора и сравнить его с x и y, они не будут совпадать. плюс объект продолжает двигаться, поэтому его сложнее отслеживать. любая идея? Извините, если я сказал, что сбивает с толку, я не мог объяснить это лучше.

+0

Какие рамки вы используете? –

+0

win32 это то, о чем вы просите? – Ramilol

+0

Вы используете plain Win32 для GUI? Какой объект вы отслеживаете, пользовательский рисунок или какое-то дочернее окно? Если вы не сообщите нам, что вы используете, это трудно дать полезные предложения. –

ответ

2

Если следовать документации GetCursorPos это сказать:

Указатель на структуру POINT, которая получает экран координаты от курсора

Но когда вы рисуете вы должны предоставить координаты клиента. Это проблема, которую вам нужно будет преобразовать из координаты экрана в координаты клиента с функцией, точно названной ScreenToClient.

Но вместо отслеживания позиции курсора вручную я предлагаю использовать событие WM_MOUSEMOVE, которое уже предоставляет вам координаты клиента.

+0

+1 для координат экрана/клиента. но нужно добавить еще что-нибудь, если мышь останется неподвижной, а затмение будет перемещено на мышь. – YeenFei

+0

Я не мог найти много деталей для события – Ramilol

+0

@YeenFei вы можете использовать WM_MOUSEMOVE для отслеживания, где находится последняя позиция мыши, а затем использовать WM_TIMER для перемещения круга, вы можете добавить проверку для последней позиции курсора закройте круг. Windows использует модель программирования на основе событий, вы должны проектировать свои программы в терминах тех событий, которые предоставляются системой (перемещение мыши, щелчок мышью, стрельба по таймеру, нажатие кнопки и т. Д. И т. Д.). – Ismael