Example #1
0
 public void OnMouseMove(object sender, MouseEventArgs e)
 {
     if (MouseMoveEvent != null)
     {
         MouseMoveEvent.Invoke(sender, e);
     }
 }
Example #2
0
        //地图控件鼠标移动事件
        private void axMapControl_eventMouseMove(object sender, _DHOSOFTMapControlEvents_eventMouseMoveEvent e)
        {
            if (Utils.bPublishEvent == false)
            {
                return;
            }
            moveLnglat.Lng = e.dLong;
            moveLnglat.Lat = e.dLat;
            MFMouseEventArgs args = new MFMouseEventArgs(moveLnglat, MouseButtons.None, e.x, e.y);

            if (MouseMoveEvent != null)
            {
                MouseMoveEvent.Invoke(this, args);
            }
        }
Example #3
0
        // 鼠标移动事件
        private void mapControl_MouseMove(object sender, MouseEventArgs e)
        {
            if (MapFrame.GMap.Common.Utils.bPublishEvent == false)
            {
                return;
            }

            var p = FromLocalToLngLat(e.X, e.Y);
            MFMouseEventArgs args = new MFMouseEventArgs(p, e.Button, e.X, e.Y);

            if (MouseMoveEvent != null)
            {
                MouseMoveEvent.Invoke(this, args);
            }
        }
Example #4
0
        /// <summary>
        /// 鼠标钩子回调函数
        /// </summary>
        /// <param name="nCode"></param>
        /// <param name="wParam"></param>
        /// <param name="lParam"></param>
        /// <returns></returns>
        private int MouseHookProc(int nCode, IntPtr wParam, IntPtr lParam)
        {
            try
            {
                if (nCode < 0)
                {
                    return(WinUserApi.CallNextHookEx(hHook, nCode, wParam, lParam));
                }
                else
                {
                    WinUserApi.POINT point = new WinUserApi.POINT();
                    WinUserApi.GetCursorPos(out point);


                    {
                        switch ((uint)wParam)
                        {
                        case WinUserApi.WM_LBUTTONDOWN:
                            MouseEventArgs LMouseClickEventArgs = new MouseEventArgs(MouseButtons.Left, 1, point.x, point.y, 0);
                            MouseClickEvent?.Invoke(this, LMouseClickEventArgs);
                            break;

                        case WinUserApi.WM_RBUTTONDOWN:
                            MouseEventArgs RMouseClickEventArgs = new MouseEventArgs(MouseButtons.Right, 1, point.x, point.y, 0);
                            MouseClickEvent?.Invoke(this, RMouseClickEventArgs);
                            break;

                        case WinUserApi.WM_RBUTTONDBLCLK:
                            MouseEventArgs RBDBLMouseClickEventArgs = new MouseEventArgs(MouseButtons.Right, 2, point.x, point.y, 0);
                            MouseClickEvent?.Invoke(this, RBDBLMouseClickEventArgs);
                            break;

                        case WinUserApi.WM_MOUSEMOVE:
                            MouseEventArgs MouseMoveEventArgs = new MouseEventArgs(MouseButtons.None, 0, point.x, point.y, 0);
                            MouseMoveEvent?.Invoke(this, MouseMoveEventArgs);
                            break;
                        }
                    }
                    return(WinUserApi.CallNextHookEx(hHook, nCode, wParam, lParam));
                }
            }
            catch { }

            return(0);
        }
Example #5
0
        protected override IntPtr CustomHookProc(IntPtr wParam, IntPtr lParam)
        {
            MSLLHOOKSTRUCT ms =
                (MSLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(MSLLHOOKSTRUCT));
            bool injected = (ms.flags & (uint)LLMHF.INJECTED) != 0;

            switch ((WM)wParam)
            {
            case WM.LBUTTONDOWN:
                if (MouseDownEvent?.Invoke(this, (uint)VK.LBUTTON, ms.pt.x, ms.pt.y, 0, injected) == true)
                {
                    return((IntPtr)(-1));
                }
                break;

            case WM.LBUTTONUP:
                if (MouseUpEvent?.Invoke(this, (uint)VK.LBUTTON, ms.pt.x, ms.pt.y, 0, injected) == true)
                {
                    return((IntPtr)(-1));
                }
                break;

            case WM.MOUSEMOVE:
                if (MouseMoveEvent?.Invoke(this, 0, ms.pt.x, ms.pt.y, 0, injected) == true)
                {
                    return((IntPtr)(-1));
                }
                break;

            case WM.MOUSEWHEEL:
                if (MouseWheelEvent?.Invoke(this, 0, ms.pt.x, ms.pt.y, HighWord(ms.mouseData), injected) == true)
                {
                    return((IntPtr)(-1));
                }
                break;

            case WM.MOUSEHWHEEL:
                if (MouseHWheelEvent?.Invoke(this, 0, ms.pt.x, ms.pt.y, HighWord(ms.mouseData), injected) == true)
                {
                    return((IntPtr)(-1));
                }
                break;

            case WM.RBUTTONDOWN:
                if (MouseDownEvent?.Invoke(this, (uint)VK.RBUTTON, ms.pt.x, ms.pt.y, 0, injected) == true)
                {
                    return((IntPtr)(-1));
                }
                break;

            case WM.RBUTTONUP:
                if (MouseUpEvent?.Invoke(this, (uint)VK.RBUTTON, ms.pt.x, ms.pt.y, 0, injected) == true)
                {
                    return((IntPtr)(-1));
                }
                break;

            case WM.MBUTTONDOWN:
                if (MouseDownEvent?.Invoke(this, (uint)VK.MBUTTON, ms.pt.x, ms.pt.y, 0, injected) == true)
                {
                    return((IntPtr)(-1));
                }
                break;

            case WM.MBUTTONUP:
                if (MouseUpEvent?.Invoke(this, (uint)VK.MBUTTON, ms.pt.x, ms.pt.y, 0, injected) == true)
                {
                    return((IntPtr)(-1));
                }
                break;

            case WM.XBUTTONDOWN:
                if (HighWord(ms.mouseData) == (int)MOUSEDATA.XBUTTON1)
                {
                    if (MouseDownEvent?.Invoke(this, (uint)VK.XBUTTON1, ms.pt.x, ms.pt.y, 0, injected) == true)
                    {
                        return((IntPtr)(-1));
                    }
                }
                else if (HighWord(ms.mouseData) == (int)MOUSEDATA.XBUTTON2)
                {
                    if (MouseDownEvent?.Invoke(this, (uint)VK.XBUTTON2, ms.pt.x, ms.pt.y, 0, injected) == true)
                    {
                        return((IntPtr)(-1));
                    }
                }
                break;

            case WM.XBUTTONUP:
                if (HighWord(ms.mouseData) == (int)MOUSEDATA.XBUTTON1)
                {
                    if (MouseUpEvent?.Invoke(this, (uint)VK.XBUTTON1, ms.pt.x, ms.pt.y, 0, injected) == true)
                    {
                        return((IntPtr)(-1));
                    }
                }
                else if (HighWord(ms.mouseData) == (int)MOUSEDATA.XBUTTON2)
                {
                    if (MouseUpEvent?.Invoke(this, (uint)VK.XBUTTON2, ms.pt.x, ms.pt.y, 0, injected) == true)
                    {
                        return((IntPtr)(-1));
                    }
                }
                break;
            }
            return(IntPtr.Zero);
        }
        public override bool Poll()
        {
            bool returnStatus = false;



            MouseStateEventData[] eventDataArray;

            lock (_mouseEventData)
            {
                eventDataArray = _mouseEventData.ToArray();
                _mouseEventData.Clear();
            }

            if (eventDataArray.Length == 0)
            {
                return(returnStatus);
            }


            MouseButtons[] currentState = _getButtonState(eventDataArray);

            Point currentPoint = eventDataArray[0].Data.Position;


            MouseButtons[] pressedButtons  = GetNewItems(_mouseStateArray, currentState);
            MouseButtons[] releasedButtons = GetMissingItems(_mouseStateArray, currentState);

            //Subtract current values so positive values result in a positive delta.
            Point relativePoint = currentPoint - _mouseStatePoint;
            int   wheelDelta    = eventDataArray[0].Data.WheelDelta;

            _mouseStateWheel = _mouseStateWheel + wheelDelta;


            MouseEventData eventData = new MouseEventData(pressedButtons, releasedButtons, currentState, currentPoint, relativePoint, _mouseStateWheel, wheelDelta);

            //System.Diagnostics.Trace.WriteLine(eventData.ToString());

            if (pressedButtons.Length != 0 || releasedButtons.Length != 0 || relativePoint != Point.Empty || wheelDelta != 0)
            {
                MouseEvent?.Invoke(new MouseEventArgs(eventData));
                returnStatus = true;
            }

            if (pressedButtons.Length != 0)
            {
                MouseDownEvent?.Invoke(new MouseEventArgs(eventData));
            }

            if (releasedButtons.Length != 0)
            {
                MouseUpEvent?.Invoke(new MouseEventArgs(eventData));
            }


            if (relativePoint != Point.Empty)
            {
                MouseMoveEvent?.Invoke(new MouseEventArgs(eventData));
            }

            if (wheelDelta != 0)
            {
                MouseWheelEvent?.Invoke(new MouseEventArgs(eventData));
            }

            _mouseStateArray = currentState;
            return(returnStatus);
        }
 private void OnMouseMove(Point point) => MouseMoveEvent?.Invoke(this, point, DateTime.Now);
Example #8
0
    public void OnMousePosition(InputAction.CallbackContext context)
    {
        Vector2 mousePosition = context.ReadValue <Vector2>();

        MouseMoveEvent.Invoke(mousePosition);
    }
Example #9
0
        private int MouseHookProc(int nCode, int wParam, IntPtr lParam)
        {
            if (nCode >= 0)
            {
                var   mouseHookStruct = (MouseHookStruct)Marshal.PtrToStructure(lParam, typeof(MouseHookStruct));
                var   button          = MouseButtons.None;
                short mouseDelta      = 0;
                var   clickCount      = 0;
                var   mouseDown       = false;
                var   mouseUp         = false;
                switch ((WindowsMessage)wParam)
                {
                case WindowsMessage.WM_LBUTTONDOWN:
                    mouseDown  = true;
                    button     = MouseButtons.Left;
                    clickCount = 1;
                    break;

                case WindowsMessage.WM_LBUTTONUP:
                    mouseUp    = true;
                    button     = MouseButtons.Left;
                    clickCount = 1;
                    break;

                case WindowsMessage.WM_LBUTTONDBLCLK:
                    button     = MouseButtons.Left;
                    clickCount = 2;
                    break;

                case WindowsMessage.WM_RBUTTONDOWN:
                    mouseDown  = true;
                    button     = MouseButtons.Right;
                    clickCount = 1;
                    break;

                case WindowsMessage.WM_RBUTTONUP:
                    mouseUp    = true;
                    button     = MouseButtons.Right;
                    clickCount = 1;
                    break;

                case WindowsMessage.WM_RBUTTONDBLCLK:
                    button     = MouseButtons.Right;
                    clickCount = 2;
                    break;

                case WindowsMessage.WM_MOUSEWHEEL:
                    mouseDelta = (short)((mouseHookStruct.MouseData >> 16) & 0xffff);
                    break;
                }
                var e = new MouseEventExtArgs(
                    button,
                    clickCount,
                    mouseHookStruct.Point.X,
                    mouseHookStruct.Point.Y,
                    mouseDelta);
                if (MouseEvent != null)
                {
                    MouseEvent.Invoke(null, e);
                }
                if (MouseUpEvent != null && mouseUp)
                {
                    MouseUpEvent.Invoke(null, e);
                }
                if (MouseDownEvent != null && mouseDown)
                {
                    MouseDownEvent.Invoke(null, e);
                }
                if (MouseClickEvent != null && clickCount > 0)
                {
                    MouseClickEvent.Invoke(null, e);
                }
                if (MouseDoubleClickEvent != null && clickCount == 2)//这里不会触发
                {
                    MouseDoubleClickEvent.Invoke(null, e);
                }
                if (MouseWheelEvent != null && mouseDelta != 0)
                {
                    MouseWheelEvent.Invoke(null, e);
                }
                if (MouseMoveEvent != null && (oldX != mouseHookStruct.Point.X || oldY != mouseHookStruct.Point.Y))
                {
                    oldX = mouseHookStruct.Point.X;
                    oldY = mouseHookStruct.Point.Y;
                    if (MouseMoveEvent != null)
                    {
                        MouseMoveEvent.Invoke(null, e);
                    }
                }
                if (e.Handled)
                {
                    return(-1);
                }
            }
            return(NativeMethods.CallNextHookEx(idHook, nCode, wParam, lParam));
        }
Example #10
0
 protected virtual void OnMouseMoveEvent(EditorEventArgs e)
 {
     MouseMoveEvent?.Invoke(this, e);
 }