Exemplo n.º 1
0
        protected bool WndPrc(ref Message message)
        {
            try
            {
                switch (message.Id)
                {
                case NativeConstants.WM_DEADCHAR:
                {
                    break;
                }

                case NativeConstants.WM_KEYDOWN:
                case NativeConstants.WM_KEYUP:
                case NativeConstants.WM_CHAR:
                {
                    WmKeyEvent(ref message);

                    break;
                }

                case NativeConstants.WM_SYSKEYDOWN:
                case NativeConstants.WM_SYSKEYUP:
                case NativeConstants.WM_SYSCHAR:
                {
                    NativeMethods.TranslateMessage(ref message);
                    WmKeyEvent(ref message);
                    return(WP_NOPASSTHROUGH);
                }

                case NativeConstants.WM_SYSCOMMAND:
                {
                    break;
                }

                case NativeConstants.WM_MOUSEMOVE:
                {
                    WmMouseMove(ref message);
                    break;
                }

                case NativeConstants.WM_LBUTTONDOWN:
                {
                    WmMouseDown(ref message, MouseButtonInternal.Left, 1);
                    break;
                }

                case NativeConstants.WM_RBUTTONDOWN:
                {
                    WmMouseDown(ref message, MouseButtonInternal.Right, 1);
                    break;
                }

                case NativeConstants.WM_MBUTTONDOWN:
                {
                    WmMouseDown(ref message, MouseButtonInternal.Middle, 1);
                    break;
                }

                case NativeConstants.WM_LBUTTONUP:
                {
                    WmMouseUp(ref message, MouseButtonInternal.Left, 1);
                    return(WP_PASSTHROUGH);
                }

                case NativeConstants.WM_RBUTTONUP:
                {
                    WmMouseUp(ref message, MouseButtonInternal.Right, 1);
                    return(WP_PASSTHROUGH);
                }

                case NativeConstants.WM_MBUTTONUP:
                {
                    WmMouseUp(ref message, MouseButtonInternal.Middle, 1);
                    return(WP_PASSTHROUGH);
                }

                case NativeConstants.WM_LBUTTONDBLCLK:
                {
                    WmMouseDown(ref message, MouseButtonInternal.Left, 2);
                    return(WP_PASSTHROUGH);
                }

                case NativeConstants.WM_RBUTTONDBLCLK:
                {
                    WmMouseDown(ref message, MouseButtonInternal.Right, 2);
                    return(WP_PASSTHROUGH);
                }

                case NativeConstants.WM_MBUTTONDBLCLK:
                {
                    WmMouseDown(ref message, MouseButtonInternal.Middle, 2);
                    return(WP_PASSTHROUGH);
                }

                case NativeConstants.WM_MOUSEWHEEL:
                {
                    WmMouseWheel(ref message);
                    return(WP_PASSTHROUGH);
                }

                case NativeConstants.WM_XBUTTONDOWN:
                {
                    WmMouseDown(ref message, GetXButton(Message.HighWord(message.WParam)), 1);
                    return(WP_PASSTHROUGH);
                }

                case NativeConstants.WM_XBUTTONUP:
                {
                    WmMouseUp(ref message, GetXButton(Message.HighWord(message.WParam)), 1);
                    return(WP_PASSTHROUGH);
                }

                case NativeConstants.WM_XBUTTONDBLCLK:
                {
                    WmMouseDown(ref message, GetXButton(Message.HighWord(message.WParam)), 2);
                    return(WP_PASSTHROUGH);
                }
                }
            }
            catch
            {
                //TODO: log...crash...what?
            }

            return(WP_PASSTHROUGH);
        }