using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSS_Solution.Forms { partial class MainForm { private Point mPoint; private void Title_MouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) Location = new Point(Location.X + e.X - mPoint.X, Location.Y + e.Y - mPoint.Y); } private void Title_MouseDown(object sender, MouseEventArgs e) { mPoint = new Point(e.X, e.Y); } //enum Adjustment_position //{ // LeftTop = 0, // Top = 1, // RightTop = 2, // Right = 3, // RightBottom = 4, // Bottom = 5, // LeftBottom = 6, // Left = 7, // Middle = 8 //} //Adjustment_position adjustment_Position = Adjustment_position.Middle; //private void Main_MouseMove(object sender, MouseEventArgs e) //{ // if (e.Button == MouseButtons.Left) // { // switch (adjustment_Position) // { // case Adjustment_position.LeftTop: // { // int endx = Left + Width; // Left = MousePosition.X; // Width = endx - Left; // int endy = Top + Height; // Top = MousePosition.Y; // Height = endy - Top; // break; // } // case Adjustment_position.Top: // { // int endy = Top + Height; // Top = MousePosition.Y; // Height = endy - Top; // break; // } // case Adjustment_position.RightTop: // { // int endy = Top + Height; // Top = MousePosition.Y; // Width = MousePosition.X - Left; // Height = endy - Top; // break; // } // case Adjustment_position.Right: // { // Width = MousePosition.X - Left; // break; // } // case Adjustment_position.RightBottom: // { // Width = MousePosition.X - Left; // Height = MousePosition.Y - Top; // break; // } // case Adjustment_position.Bottom: // { // Height = MousePosition.Y - Top; // break; // } // case Adjustment_position.LeftBottom: // { // int endx = Left + Width; // Left = MousePosition.X; // Width = endx - Left; // Height = MousePosition.Y - Top; // break; // } // case Adjustment_position.Left: // { // int endx = Left + Width; // Left = MousePosition.X; // Width = endx - Left; // break; // } // } // } // if (e.Location.X >= Width - 4 && e.Location.Y >= Height - 4) // { // Cursor = Cursors.SizeNWSE; //RightBottom // adjustment_Position = Adjustment_position.RightBottom; // } // else if (e.Location.X >= Width - 4 && e.Location.Y <= 4) // { // Cursor = Cursors.SizeNESW; //RightTop // adjustment_Position = Adjustment_position.RightTop; // } // else if (e.Location.X <= 4 && e.Location.Y >= Height - 4) // { // Cursor = Cursors.SizeNESW; //LeftBottom // adjustment_Position = Adjustment_position.LeftBottom; // } // else if (e.Location.X <= 4 && e.Location.Y <= 4) // { // Cursor = Cursors.SizeNWSE; //LeftTop // adjustment_Position = Adjustment_position.LeftTop; // } // else if (e.Location.X >= Width - 4) // { // Cursor = Cursors.SizeWE; //Right // adjustment_Position = Adjustment_position.Right; // } // else if (e.Location.X <= 4) // { // Cursor = Cursors.SizeWE; //Left // adjustment_Position = Adjustment_position.Left; // } // else if (e.Location.Y >= Height - 4) // { // Cursor = Cursors.SizeNS; //Bottom // adjustment_Position = Adjustment_position.Bottom; // } // else if (e.Location.Y <= 4) // { // Cursor = Cursors.SizeNS; //Top // adjustment_Position = Adjustment_position.Top; // } // else // { // Cursor = Cursors.Arrow; //Middle // adjustment_Position = Adjustment_position.Middle; // } //} //private void Main_Leave(object sender, EventArgs e) //{ // Cursor = Cursors.Arrow;// 移出窗体变为正常 //} #region 支持改变窗体大小 private const int Guying_HTLEFT = 10; private const int Guying_HTRIGHT = 11; private const int Guying_HTTOP = 12; private const int Guying_HTTOPLEFT = 13; private const int Guying_HTTOPRIGHT = 14; private const int Guying_HTBOTTOM = 15; private const int Guying_HTBOTTOMLEFT = 0x10; private const int Guying_HTBOTTOMRIGHT = 17; protected override void WndProc(ref Message m) { switch (m.Msg) { case 0x0084: base.WndProc(ref m); Point vPoint = new Point((int)m.LParam & 0xFFFF, (int)m.LParam >> 16 & 0xFFFF); vPoint = PointToClient(vPoint); if (vPoint.X <= 5) if (vPoint.Y <= 5) m.Result = (IntPtr)Guying_HTTOPLEFT; else if (vPoint.Y >= ClientSize.Height - 5) m.Result = (IntPtr)Guying_HTBOTTOMLEFT; else m.Result = (IntPtr)Guying_HTLEFT; else if (vPoint.X >= ClientSize.Width - 5) if (vPoint.Y <= 5) m.Result = (IntPtr)Guying_HTTOPRIGHT; else if (vPoint.Y >= ClientSize.Height - 5) m.Result = (IntPtr)Guying_HTBOTTOMRIGHT; else m.Result = (IntPtr)Guying_HTRIGHT; else if (vPoint.Y <= 5) m.Result = (IntPtr)Guying_HTTOP; else if (vPoint.Y >= ClientSize.Height - 5) m.Result = (IntPtr)Guying_HTBOTTOM; break; case 0x0201://鼠标左键按下的消息 m.Msg = 0x00A1;//更改消息为非客户区按下鼠标 m.LParam = IntPtr.Zero; //默认值 m.WParam = new IntPtr(2);//鼠标放在标题栏内 base.WndProc(ref m); break; default: base.WndProc(ref m); break; } } #endregion } }