Winform自定義無邊框窗體


目的:

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;

  

 

 

效果圖

 

源碼下載地址:

https://download.csdn.net/download/u011392711/11109822


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM