2010-07-20 2 views
1

Привет, у меня есть три элемента управления (CButtton) в моем приложении, когда мышь перемещается над элементом управления, я хочу, чтобы захватить, когда мышь вводит элемент управления в окне и когда он уходит и я должен изменить заголовок кнопки управления.Мышь Move Capture (мышь оставляем и вводим мышь)

Заранее спасибо

ответ

4

Там нет окон сообщений/событие, которое указывает «мыши ввести» или 'отпуск мыши. Однако это может быть достигнуто путем обработки сообщения «MouseMove» для вашего управления и захвата ввода мыши, чтобы проверить, находится ли точка внутри области управления. Освободите захват, если точка находится вне зоны управления.

для проверки кода образца here.

+1

Вы также можете взглянуть на TrackMouseEven t API: http://msdn.microsoft.com/en-us/library/ms646265(VS.85).aspx – humbagumba

+0

@Hemant: вы должны увидеть мой ответ ... – sergiol

0

@Hemant:

Вы не правы. Есть сообщения о разрешении мыши и мыши парении, определенные в WINUSER.H

#if((_WIN32_WINNT >= 0x0400) || (WINVER >= 0x0500)) 
#define WM_MOUSEHOVER     0x02A1 
#define WM_MOUSELEAVE     0x02A3 
#endif 
#if(WINVER >= 0x0500) 
#define WM_NCMOUSEHOVER     0x02A0 
#define WM_NCMOUSELEAVE     0x02A2 
#endif /* WINVER >= 0x0500 */ 

Документация:

WM_MOUSEHOVER message

WM_MOUSELEAVE message

И вы можете справиться с сообщением-отображением, как:

ON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave) 
+0

Не работает для меня – manatttta

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