目的:
1、將窗體設置成無邊框,如下面效果圖
2、該無邊框窗體添加了窗體放大、縮小(可以根據需要只能橫向放大縮小 或者 豎向放大縮小)的功能
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)GuyingHtTopLeft;
}
else
{
m.Result = vPoint.Y >= ClientSize.Height - 5 ? (IntPtr)GuyingHtBottomLeft : (IntPtr)GuyingHtLeft;
}
}
else if (vPoint.X >= ClientSize.Width - 5)
{
if (vPoint.Y <= 5)
{
m.Result = (IntPtr)GuyingHtTopRight;
}
else
{
m.Result = vPoint.Y >= ClientSize.Height - 5 ? (IntPtr)GuyingHtBottomRight : (IntPtr)GuyingHtRight;
}
}
else if (vPoint.Y <= 5)
{
m.Result = (IntPtr)GuyingHtTop;
}
else if (vPoint.Y >= ClientSize.Height - 5)
{
m.Result = (IntPtr)GuyingHtBottom;
}
3、添加鼠標左鍵點擊
case 0x0201: //鼠標左鍵按下的消息
if ( /*this.*/Draggable)
{
m.Msg = 0x00A1; //更改消息為非客戶區按下鼠標
m.LParam = IntPtr.Zero; //默認值
m.WParam = new IntPtr(2); //鼠標放在標題欄內
}
base.WndProc(ref m);
break;
效果圖

源碼下載地址:
