Beispiel #1
0
 private bool hookMouse_HookInvoked(object sender, HookEventArgs e)
 {
     if (e.wParam == (IntPtr)513 || e.wParam == (IntPtr)519 || (e.wParam == (IntPtr)516 || e.wParam == (IntPtr)161) || (e.wParam == (IntPtr)167 || e.wParam == (IntPtr)164))
     {
         WindowsHook.MSLLHOOKSTRUCT structure = (WindowsHook.MSLLHOOKSTRUCT)Marshal.PtrToStructure(e.lParam, typeof(WindowsHook.MSLLHOOKSTRUCT));
         Point p = new Point(structure.pt.x, structure.pt.y);
         try
         {
             if (!this.ActiveDropDown.ClientRectangle.Contains(this.ActiveDropDown.PointToClient(p)))
             {
                 for (int index1 = this.DropDowns.Count - 2; index1 >= 0; --index1)
                 {
                     Point client = this.DropDowns[index1].PointToClient(p);
                     if (this.DropDowns[index1].ClientRectangle.Contains(client))
                     {
                         for (int index2 = this.DropDowns.Count - 1; index2 > index1; --index2)
                         {
                             this.DropDowns[index2].ClosePopup(RadPopupCloseReason.Mouse);
                         }
                         return(true);
                     }
                 }
                 this.UnRegisterAllMenus();
             }
         }
         catch
         {
             this.UnRegisterAllMenus();
         }
     }
     return(true);
 }
Beispiel #2
0
        private bool hookMouse_HookInvoked(object sender, HookEventArgs e)
        {
            if (e.wParam == (IntPtr)NativeMethods.WM_LBUTTONDOWN ||
                e.wParam == (IntPtr)NativeMethods.WM_MBUTTONDOWN ||
                e.wParam == (IntPtr)NativeMethods.WM_RBUTTONDOWN ||
                e.wParam == (IntPtr)NativeMethods.WM_NCLBUTTONDOWN ||
                e.wParam == (IntPtr)NativeMethods.WM_NCMBUTTONDOWN ||
                e.wParam == (IntPtr)NativeMethods.WM_NCRBUTTONDOWN)
            {
                WindowsHook.MSLLHOOKSTRUCT hookStruct = (WindowsHook.MSLLHOOKSTRUCT)Marshal.PtrToStructure(e.lParam, typeof(WindowsHook.MSLLHOOKSTRUCT));
                Point point = new Point(hookStruct.pt.x, hookStruct.pt.y);

                try
                {
                    if (!ActiveDropDown.ClientRectangle.Contains(ActiveDropDown.PointToClient(point)))
                    {
                        for (int i = DropDowns.Count - 2; i >= 0; i--)
                        {
                            Point p = DropDowns[i].PointToClient(point);
                            if (DropDowns[i].ClientRectangle.Contains(p))
                            {
                                for (int k = DropDowns.Count - 1; k > i; k--)
                                {
                                    DropDowns[k].ClosePopup(RadPopupCloseReason.Mouse);
                                }

                                return(true);
                            }
                        }
                        UnRegisterAllMenus();
                    }
                }
                catch
                {
                    UnRegisterAllMenus();
                }
            }

            return(true);
        }