CssSolution/CSS_Solution/Forms/Form_Adjustment.cs

200 lines
7.8 KiB
C#
Raw Permalink Normal View History

2024-03-12 08:15:15 +00:00
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
}
}