200 lines
7.8 KiB
C#
200 lines
7.8 KiB
C#
|
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
|
|||
|
}
|
|||
|
}
|