示例#1
0
 protected override void WndProc(ref Message m)
 {
     switch (m.Msg)
     {
     case WM_DISPLAYCHANGE:
         GestureMachine.Reset();
         break;
     }
     base.WndProc(ref m);
 }
示例#2
0
        public WindowsHook.Result MouseProc(LowLevelMouseHook.Event evnt, LowLevelMouseHook.MSLLHOOKSTRUCT data)
        {
            if (data.fromCreviceApp)
            {
                Debug.Print("{0} was passed to the next hook because this event has the signature of CreviceApp",
                            Enum.GetName(typeof(LowLevelMouseHook.Event),
                                         evnt));
                return(WindowsHook.Result.Transfer);
            }
            else if (data.fromTablet)
            {
                Debug.Print("{0} was passed to the next hook because this event has the signature of Tablet",
                            Enum.GetName(typeof(LowLevelMouseHook.Event),
                                         evnt));
                return(WindowsHook.Result.Transfer);
            }

            var point = new Point(data.pt.x, data.pt.y);

            switch (evnt)
            {
            case LowLevelMouseHook.Event.WM_MOUSEMOVE:
                return(Convert(GestureMachine.Input(Core.Def.Constant.Move, point)));

            case LowLevelMouseHook.Event.WM_LBUTTONDOWN:
                return(Convert(GestureMachine.Input(Core.Def.Constant.LeftButtonDown, point)));

            case LowLevelMouseHook.Event.WM_LBUTTONUP:
                return(Convert(GestureMachine.Input(Core.Def.Constant.LeftButtonUp, point)));

            case LowLevelMouseHook.Event.WM_RBUTTONDOWN:
                return(Convert(GestureMachine.Input(Core.Def.Constant.RightButtonDown, point)));

            case LowLevelMouseHook.Event.WM_RBUTTONUP:
                return(Convert(GestureMachine.Input(Core.Def.Constant.RightButtonUp, point)));

            case LowLevelMouseHook.Event.WM_MBUTTONDOWN:
                return(Convert(GestureMachine.Input(Core.Def.Constant.MiddleButtonDown, point)));

            case LowLevelMouseHook.Event.WM_MBUTTONUP:
                return(Convert(GestureMachine.Input(Core.Def.Constant.MiddleButtonUp, point)));

            case LowLevelMouseHook.Event.WM_MOUSEWHEEL:
                if (data.mouseData.asWheelDelta.delta < 0)
                {
                    return(Convert(GestureMachine.Input(Core.Def.Constant.WheelDown, point)));
                }
                else
                {
                    return(Convert(GestureMachine.Input(Core.Def.Constant.WheelUp, point)));
                }

            case LowLevelMouseHook.Event.WM_XBUTTONDOWN:
                if (data.mouseData.asXButton.isXButton1)
                {
                    return(Convert(GestureMachine.Input(Core.Def.Constant.X1ButtonDown, point)));
                }
                else
                {
                    return(Convert(GestureMachine.Input(Core.Def.Constant.X2ButtonDown, point)));
                }

            case LowLevelMouseHook.Event.WM_XBUTTONUP:
                if (data.mouseData.asXButton.isXButton1)
                {
                    return(Convert(GestureMachine.Input(Core.Def.Constant.X1ButtonUp, point)));
                }
                else
                {
                    return(Convert(GestureMachine.Input(Core.Def.Constant.X2ButtonUp, point)));
                }

            case LowLevelMouseHook.Event.WM_MOUSEHWHEEL:
                if (data.mouseData.asWheelDelta.delta < 0)
                {
                    return(Convert(GestureMachine.Input(Core.Def.Constant.WheelRight, point)));
                }
                else
                {
                    return(Convert(GestureMachine.Input(Core.Def.Constant.WheelLeft, point)));
                }
            }
            return(WindowsHook.Result.Transfer);
        }
示例#3
0
 protected override void OnClosed(EventArgs e)
 {
     base.OnClosed(e);
     GestureMachine.Dispose();
 }