Exemple #1
0
        private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            ClosePress = CloseButton.IsVisible(e.X, e.Y) && e.Button == MouseButtons.Left;
            MinPress   = MinButton.IsVisible(e.X, e.Y) && e.Button == MouseButtons.Left;
            FormDrag   = TitleBar.IsVisible(e.X, e.Y) &&
                         e.Button == MouseButtons.Left &&
                         ClosePress == false && MinPress == false;

            if (FormDrag)
            {
                this.Capture = false;
                Message msg = Message.Create(Handle, WM_NCLBUTTONDOWN, (IntPtr)HT_CAPTION, IntPtr.Zero);
                WndProc(ref msg);
            }

            Invalidate();
        }
Exemple #2
0
        private void Form1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            bool OverClose, OverMin;

            OverClose = CloseButton.IsVisible(e.X, e.Y);
            OverMin   = MinButton.IsVisible(e.X, e.Y);

            if (OverClose && ClosePress && e.Button == MouseButtons.Left)
            {
                this.Close();
            }
            if (OverMin && MinPress && e.Button == MouseButtons.Left)
            {
                this.WindowState = FormWindowState.Minimized;
            }

            if (e.Button == MouseButtons.Right && TitleBar.IsVisible(e.X, e.Y))
            {
                if (OverClose == false && OverMin == false)
                {
                    const int WM_GETSYSMENU = 0x313;
                    if (e.Button == MouseButtons.Right)
                    {
                        Point   pos  = this.PointToScreen(new Point(e.X, e.Y));
                        IntPtr  hPos = (IntPtr)((int)((pos.Y * 0x10000) | (pos.X & 0xFFFF)));
                        Message msg  = Message.Create(this.Handle, WM_GETSYSMENU, IntPtr.Zero, hPos);
                        WndProc(ref msg);
                    }
                }
            }

            ClosePress = false;
            MinPress   = false;
            FormDrag   = false;

            Invalidate();
        }