Ejemplo n.º 1
0
            protected override void WndProc(ref Message m)
            {
                switch ((Msg)m.Msg)
                {
                //
                //  NotifyIcon does CONTEXTMENU on mouse up, not down
                //  so we swallow the message here, and handle it on our own
                //
                case Msg.WM_CONTEXTMENU:
                    return;

                case Msg.WM_USER: {
                    switch ((Msg)m.LParam.ToInt32())
                    {
                    case Msg.WM_LBUTTONDOWN: {
                        owner.OnMouseDown(new MouseEventArgs(MouseButtons.Left, 1, Control.MousePosition.X, Control.MousePosition.Y, 0));
                        return;
                    }

                    case Msg.WM_LBUTTONUP: {
                        owner.OnMouseUp(new MouseEventArgs(MouseButtons.Left, 1, Control.MousePosition.X, Control.MousePosition.Y, 0));
                        return;
                    }

                    case Msg.WM_LBUTTONDBLCLK: {
                        owner.OnDoubleClick(EventArgs.Empty);
                        owner.OnMouseDoubleClick(new MouseEventArgs(MouseButtons.Left, 2, Control.MousePosition.X, Control.MousePosition.Y, 0));
                        return;
                    }

                    case Msg.WM_MOUSEMOVE: {
                        owner.OnMouseMove(new MouseEventArgs(MouseButtons.None, 1, Control.MousePosition.X, Control.MousePosition.Y, 0));
                        return;
                    }

                    case Msg.WM_RBUTTONDOWN: {
                        owner.OnMouseDown(new MouseEventArgs(MouseButtons.Right, 1, Control.MousePosition.X, Control.MousePosition.Y, 0));
                        return;
                    }

                    case Msg.WM_RBUTTONUP: {
                        owner.OnMouseUp(new MouseEventArgs(MouseButtons.Right, 1, Control.MousePosition.X, Control.MousePosition.Y, 0));
                        return;
                    }

                    case Msg.WM_RBUTTONDBLCLK: {
                        owner.OnDoubleClick(EventArgs.Empty);
                        owner.OnMouseDoubleClick(new MouseEventArgs(MouseButtons.Left, 2, Control.MousePosition.X, Control.MousePosition.Y, 0));
                        return;
                    }

                    case Msg.NIN_BALLOONUSERCLICK: {
                        owner.OnBalloonTipClicked(EventArgs.Empty);
                        return;
                    }

                    case Msg.NIN_BALLOONSHOW: {
                        owner.OnBalloonTipShown(EventArgs.Empty);
                        return;
                    }

                    case Msg.NIN_BALLOONHIDE:
                    case Msg.NIN_BALLOONTIMEOUT: {
                        owner.OnBalloonTipClosed(EventArgs.Empty);
                        return;
                    }
                    }
                    return;
                }
                }
                base.WndProc(ref m);
            }