示例#1
0
文件: Ribbon.cs 项目: radtek/dms
        public int MouseHookProc(int nCode, IntPtr wParam, IntPtr lParam)
        {
            //Unmarshall the data from the callback.
            MouseHookStructWithData hookStruct = (MouseHookStructWithData)Marshal.PtrToStructure(lParam, typeof(MouseHookStructWithData));

            if (nCode < 0)
            {
                return(CallNextHookEx(hHook, nCode, wParam, lParam));
            }
            else
            {
                if (wParam.ToInt32() == 0x20A) //WM_MOUSEWHEEL
                {
                    if (RectangleToScreen(
                            new Rectangle(Point.Empty, Size)
                            ).Contains(hookStruct.pt.x, hookStruct.pt.y))
                    {
                        OnMouseWheel(new MouseEventArgs(MouseButtons.None, 0, hookStruct.pt.x, hookStruct.pt.y, hookStruct.mouseData));
                    }
                }
                //else if (wParam.ToInt32() == 0x201) //WM_LBUTTONDOWN
                //{
                //    if (OrbDropDown.Visible &&
                //        OrbDropDown.ToolStripDropDown != null &&
                //        !OrbDropDown.ToolStripDropDown.Bounds.Contains(hookStruct.pt.x, hookStruct.pt.y))
                //    {
                //        Console.WriteLine("CLOSSSING");
                //        OrbDropDown.CloseAll();
                //    }
                //}

                return(CallNextHookEx(hHook, nCode, wParam, lParam));
            }
        }
示例#2
0
        public int MouseHookProc(int nCode, IntPtr wParam, IntPtr lParam)
        {
            //Marshall the data from the callback.
            MouseHookStructWithData hookStruct = (MouseHookStructWithData)Marshal.PtrToStructure(lParam, typeof(MouseHookStructWithData));

            if (nCode < 0)
            {
                return(CallNextHookEx(hHook, nCode, wParam, lParam));
            }
            else
            {
                if (wParam.ToInt32() == 0x20A)
                {
                    if (RectangleToScreen(
                            new Rectangle(Point.Empty, Size)
                            ).Contains(hookStruct.pt.x, hookStruct.pt.y))
                    {
                        OnMouseWheel(new MouseEventArgs(MouseButtons.None, 0, hookStruct.pt.x, hookStruct.pt.y, hookStruct.mouseData));
                    }
                }

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