C# Windows Form FormBorderStyle = None Изменение размера формы
public Form1()
{
InitializeComponent();
}
protected override void WndProc(ref Message m)
{
if (WindowState == FormWindowState.Normal)
{
switch (m.Msg)
{
case 0x0084: /*NCHITTEST*/
base.WndProc(ref m);
if ((int)m.Result == 0x01) /*HTCLIENT*/
{
Point screenPoint = new Point(m.LParam.ToInt32());
Point clientPoint = this.PointToClient(screenPoint);
if (clientPoint.Y <= 10)
{
if (clientPoint.X <= 10)
m.Result = (IntPtr)13; /*HTTOPLEFT*/
else if (clientPoint.X < (Size.Width - 10))
m.Result = (IntPtr)12; /*HTTOP*/
else
m.Result = (IntPtr)14; /*HTTOPRIGHT*/
}
else if (clientPoint.Y <= (Size.Height - 10))
{
if (clientPoint.X <= 10)
m.Result = (IntPtr)10; /*HTLEFT*/
else if (clientPoint.X < (Size.Width - 10))
m.Result = (IntPtr)1; /*HTCAPTION*/
else
m.Result = (IntPtr)11; /*HTRIGHT*/
}
else
{
if (clientPoint.X <= 10)
m.Result = (IntPtr)16; /*HTBOTTOMLEFT*/
else if (clientPoint.X < (Size.Width - 10))
m.Result = (IntPtr)15; /*HTBOTTOM*/
else
m.Result = (IntPtr)17; /*HTBOTTOMRIGHT*/
}
}
return;
}
}
base.WndProc(ref m);
}