Захват событий мыши от каждого компонента
У меня проблема с MouseEvents в моем приложении WinForm C #.
я хочу получитьвсе щелчки мышью по моему приложению, но я не хочу помещать слушателя в каждый дочерний компонент и не использовать ловушку мыши Windows
На Flash я мог поставить слушателя на сцену, чтобы получить все MouseEvents в фильме.
Есть ли такая вещь на C #? Глобальный MouseListener?
Редактировать:
Я создаю этот класс из IMessageFilter и использую Application.AddMessageFilter.
public class GlobalMouseHandler : IMessageFilter{
private const int WM_LBUTTONDOWN = 0x201;
public bool PreFilterMessage(ref Message m){
if (m.Msg == WM_LBUTTONDOWN) {
// Do stuffs
}
return false;
}
}
И поместите этот код в элементы управления, которые должны прослушивать глобальные щелчки:
GlobalMouseHandler globalClick = new GlobalMouseHandler();
Application.AddMessageFilter(globalClick);