コード例 #1
0
 public bool PreFilterMessage(ref Message m)
 {
     if (m.Msg == 0x200)
     {
         return(false);
     }
     if (m.Msg == 0x102)
     {
         return(false);
     }
     if (m.Msg != 260)
     {
         if (m.Msg == 0x105)
         {
             return(true);
         }
         if (m.Msg == 0x106)
         {
             return(true);
         }
         if (m.Msg == 0x107)
         {
             return(true);
         }
         if (m.Msg == 0x101)
         {
             return(true);
         }
         if (m.Msg == 0x100)
         {
             return(true);
         }
         if (m.Msg == 0xa4)
         {
             return(true);
         }
         if (m.Msg == 6)
         {
             MyRenderProxy.HandleFocusMessage((m.WParam != IntPtr.Zero) ? MyWindowFocusMessage.Activate : MyWindowFocusMessage.Deactivate);
         }
         if (m.Msg == 7)
         {
             MyRenderProxy.HandleFocusMessage(MyWindowFocusMessage.SetFocus);
         }
         if (!this.BypassedMessages.Contains(m.Msg))
         {
             return(false);
         }
         if (m.Msg == 6)
         {
             if (m.WParam == IntPtr.Zero)
             {
                 this.OnDeactivate(EventArgs.Empty);
             }
             else
             {
                 this.OnActivated(EventArgs.Empty);
             }
         }
         if (m.Msg == 0x200)
         {
             this.OnMouseMove(this.m_emptyMouseEventArgs);
         }
         m.Result = WinApi.DefWindowProc(m.HWnd, m.Msg, m.WParam, m.LParam);
     }
     return(true);
 }
コード例 #2
0
        public bool PreFilterMessage(ref Message m)
        {
            if (m.Msg == (int)WinApi.WM.MOUSEMOVE)
            {
                return(false);
            }

            if (m.Msg == (int)WinApi.WM.CHAR)
            {
                return(false);
            }

            if (m.Msg == (int)WinApi.WM.SYSKEYDOWN)
            {
                return(true);
            }

            if (m.Msg == (int)WinApi.WM.SYSKEYUP)
            {
                return(true);
            }

            if (m.Msg == (int)WinApi.WM.SYSCHAR)
            {
                return(true);
            }

            if (m.Msg == (int)WinApi.WM.SYSDEADCHAR)
            {
                return(true);
            }

            if (m.Msg == (int)WinApi.WM.KEYUP)
            {
                return(true);
            }

            if (m.Msg == (int)WinApi.WM.KEYDOWN)
            {
                return(true);
            }

            if (m.Msg == (int)WinApi.WM.SYSCOMMAND)
            {
                //http://msdn.microsoft.com/en-us/library/windows/desktop/ms646360(v=vs.85).aspx
                WinApi.SystemCommands correctWParam = (WinApi.SystemCommands)((int)m.WParam & 0xFFF0);

                if (correctWParam == WinApi.SystemCommands.SC_MOUSEMENU)
                {
                    return(true);
                }
            }

            if (m.Msg == (int)WinApi.WM.NCRBUTTONDOWN)
            {
                return(true);
            }

            if (m.Msg == (int)WinApi.WM.ACTIVATE)
            {
                MyRenderProxy.HandleFocusMessage(MyWindowFocusMessage.Activate);
            }

            if (m.Msg == (int)WinApi.WM.SETFOCUS)
            {
                MyRenderProxy.HandleFocusMessage(MyWindowFocusMessage.SetFocus);
            }

            if (BypassedMessages.Contains(m.Msg))
            {
                if (m.Msg == (int)WinApi.WM.ACTIVATE)
                {
                    if (m.WParam == IntPtr.Zero)
                    {
                        OnDeactivate(EventArgs.Empty);
                    }
                    else
                    {
                        OnActivated(EventArgs.Empty);
                    }
                }
                if (m.Msg == (int)WinApi.WM.MOUSEMOVE)
                {
                    OnMouseMove(m_emptyMouseEventArgs);
                }

                m.Result = WinApi.DefWindowProc(m.HWnd, m.Msg, m.WParam, m.LParam);
                return(true);
            }

            return(false);
        }