コード例 #1
0
    void Start()
    {
        var down1 = new EventTrigger.Entry()
        {
            eventID = EventTriggerType.PointerDown
        };
        var down2 = new EventTrigger.Entry()
        {
            eventID = EventTriggerType.PointerDown
        };
        var up1 = new EventTrigger.Entry()
        {
            eventID = EventTriggerType.PointerUp
        };
        var up2 = new EventTrigger.Entry()
        {
            eventID = EventTriggerType.PointerUp
        };

        down1.callback.AddListener(x => LeftDown.Invoke());
        up1.callback.AddListener(x => LeftUp.Invoke());
        down2.callback.AddListener(x => RightDown.Invoke());
        up2.callback.AddListener(x => RightUp.Invoke());

        left.triggers.AddRange(new[] { down1, up1 });
        right.triggers.AddRange(new[] { down2, up2 });

        var drag = new EventTrigger.Entry()
        {
            eventID = EventTriggerType.Drag
        };
        var up3 = new EventTrigger.Entry()
        {
            eventID = EventTriggerType.PointerUp
        };

        drag.callback.AddListener(x => OnAcceleratorDrag.Invoke(x as PointerEventData));
        up3.callback.AddListener(x => OnAcceleratorUp.Invoke(x as PointerEventData));

        accelerator.triggers.AddRange(new[] { drag, up3 });

        toMenuButton.onClick.AddListener(ToMenu.Invoke);
    }
コード例 #2
0
        public override int HookProcEvent(int nCode, Int32 wParam, IntPtr lParam)
        {
            //如果正常运行并且用户要监听鼠标的消息
            if (nCode >= 0)
            {
                MouseButtons    button            = MouseButtons.None;
                int             clickCount        = 0;
                int             delta             = 0;
                MouseHookStruct MyMouseHookStruct = (MouseHookStruct)Marshal.PtrToStructure(lParam, typeof(MouseHookStruct));
                MouseEventArgs  e;
                switch ((int)wParam)
                {
                case Const.WM_LBUTTONDOWN:
                    LastMouseDownTimeSpan = Environment.TickCount;
                    button     = MouseButtons.Left;
                    clickCount = 1;
                    e          = new MouseEventArgs(button, clickCount, MyMouseHookStruct.pt.X, MyMouseHookStruct.pt.Y, delta);
                    LeftDown?.Invoke(this, e);
                    break;

                case Const.WM_LBUTTONUP:
                    LastMouseDownTimeSpan = Environment.TickCount;
                    button     = MouseButtons.Left;
                    clickCount = 1;
                    e          = new MouseEventArgs(button, clickCount, MyMouseHookStruct.pt.X, MyMouseHookStruct.pt.Y, delta);
                    LeftUp?.Invoke(this, e);
                    break;

                case Const.WM_MBUTTONDOWN:
                    button     = MouseButtons.Middle;
                    clickCount = 1;
                    e          = new MouseEventArgs(button, clickCount, MyMouseHookStruct.pt.X, MyMouseHookStruct.pt.Y, delta);
                    MiddleDown?.Invoke(this, e);
                    break;

                case Const.WM_MBUTTONUP:
                    button     = MouseButtons.Middle;
                    clickCount = 1;
                    e          = new MouseEventArgs(button, clickCount, MyMouseHookStruct.pt.X, MyMouseHookStruct.pt.Y, delta);
                    MiddleUp?.Invoke(this, e);
                    break;

                case Const.WM_RBUTTONDOWN:
                    button     = MouseButtons.Right;
                    clickCount = 1;
                    e          = new MouseEventArgs(button, clickCount, MyMouseHookStruct.pt.X, MyMouseHookStruct.pt.Y, delta);
                    RightDown?.Invoke(this, e);
                    break;

                case Const.WM_RBUTTONUP:
                    button     = MouseButtons.Right;
                    clickCount = 1;
                    e          = new MouseEventArgs(button, clickCount, MyMouseHookStruct.pt.X, MyMouseHookStruct.pt.Y, delta);
                    RightUp?.Invoke(this, e);
                    break;

                case Const.WM_MOUSEWHEEL:
                    if (!mouseLeftDown)
                    {
                        button     = MouseButtons.Middle;
                        clickCount = 0;
                        delta      = MyMouseHookStruct.hWnd >> 16;
                        e          = new MouseEventArgs(button, clickCount, MyMouseHookStruct.pt.X, MyMouseHookStruct.pt.Y, delta);
                        MouseWheel?.Invoke(this, e);
                    }
                    break;

                case Const.WM_MOUSEMOVE:
                    button     = MouseButtons.None;
                    clickCount = 0;
                    e          = new MouseEventArgs(button, clickCount, MyMouseHookStruct.pt.X, MyMouseHookStruct.pt.Y, delta);
                    MouseMove?.Invoke(this, e);
                    break;
                }
            }

            return(CallNextHookEx(hwndHook, nCode, wParam, lParam));
        }