public void TranslateMouseEvent(LowLevelMouseMessage Message) { // Store which mouse event occured MouseEvent = (MouseEvents)Message.Message; // Define new MouseMessageEventArgs to get handled state MouseMessageEventArgs args = null; switch (MouseEvent) { case MouseEvents.LeftButtonDown: args = new MouseMessageEventArgs(MouseButtons.Left, 1, Message.Point.X, Message.Point.Y, 0, Message); OnMouseDown(args); break; case MouseEvents.LeftButtonUp: args = new MouseMessageEventArgs(MouseButtons.Left, 1, Message.Point.X, Message.Point.Y, 0, Message); OnMouseUp(args); break; case MouseEvents.RightButtonDown: args = new MouseMessageEventArgs(MouseButtons.Right, 1, Message.Point.X, Message.Point.Y, 0, Message); OnMouseDown(args); break; case MouseEvents.RightButtonUp: args = new MouseMessageEventArgs(MouseButtons.Right, 1, Message.Point.X, Message.Point.Y, 0, Message); OnMouseUp(args); break; case MouseEvents.MiddleButtonDown: args = new MouseMessageEventArgs(MouseButtons.Middle, 1, Message.Point.X, Message.Point.Y, 0, Message); OnMouseDown(args); break; case MouseEvents.MiddleButtonUp: args = new MouseMessageEventArgs(MouseButtons.Middle, 1, Message.Point.X, Message.Point.Y, 0, Message); OnMouseUp(args); break; case MouseEvents.Move: args = new MouseMessageEventArgs(MouseButtons.None, 0, Message.Point.X, Message.Point.Y, 0, Message); OnMouseMove(args); break; default: args = new MouseMessageEventArgs(MouseButtons.None, 0, 0, 0, 0, Message); // Catch additional buttons break; } // Set handled property of class to MouseMessageEventArgs handled flag to notify the main mouse intercept that one of the events handled it this.Handled = args.Handled; }
public MouseMessageEventArgs(MouseButtons button, int clicks, int x, int y, int delta, LowLevelMouseMessage Message) : base(button, clicks, x, y, delta) { this.MouseMessage = Message; }
private static bool TestResizeMouseState(LowLevelMouseMessage mevt) { MouseButtons mouseButton = MouseButtons.None; switch ((MouseState)mevt.Message) { case MouseState.WM_LBUTTONDOWN: case MouseState.WM_LBUTTONUP: mouseButton = MouseButtons.Left; break; case MouseState.WM_MBUTTONDOWN: case MouseState.WM_MBUTTONUP: mouseButton = MouseButtons.Middle; break; case MouseState.WM_RBUTTONDOWN: case MouseState.WM_RBUTTONUP: mouseButton = MouseButtons.Right; break; } return (OptionsManager.ResizeOptions.mouseButton == mouseButton); }
protected void MouseEventTranslator_MouseDown(object sender, MouseMessageEventArgs e) { // Disregard all but capture button events if (e.Button != MouseButtons.Right) return; // Can we begin a new gesture capture if (State == CaptureState.Ready) { Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.High; // Store original mouse message _OriginalMessage = e.MouseMessage; // Try to begin capture process, if capture started then don't notify other applications of a mouse event, otherwise do e.Handled = TryBeginCapture(e.Location); if (!e.Handled) Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.Normal; } }