const int WM_NCHITTEST = 0x0084;
        
const int HTLEFT = 10;
        
const int HTRIGHT = 11;
        
const int HTTOP = 12;
        
const int HTTOPLEFT = 13;
        
const int HTTOPRIGHT = 14;
        
const int HTBOTTOM = 15;
        
const int HTBOTTOMLEFT = 0x10;
        
const int HTBOTTOMRIGHT = 17;

        
protected override void WndProc(ref Message m)
        {
            
base.WndProc(ref m);
            
switch (m.Msg)
            {
                
case WM_NCHITTEST:
                    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)HTTOPLEFT;
                        
else if (vPoint.Y >= ClientSize.Height - 5)
                            m.Result 
= (IntPtr)HTBOTTOMLEFT;
                        
else m.Result = (IntPtr)HTLEFT;
                    
else if (vPoint.X >= ClientSize.Width - 5)
                        
if (vPoint.Y <= 5)
                            m.Result 
= (IntPtr)HTTOPRIGHT;
                        
else if (vPoint.Y >= ClientSize.Height - 5)
                            m.Result 
= (IntPtr)HTBOTTOMRIGHT;
                        
else m.Result = (IntPtr)HTRIGHT;
                    
else if (vPoint.Y <= 5)
                        m.Result 
= (IntPtr)HTTOP;
                    
else if (vPoint.Y >= ClientSize.Height - 5)
                        m.Result 
= (IntPtr)HTBOTTOM;
                    
break;
            }
        }

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2020-03-22
  • 2022-03-05
猜你喜欢
  • 2021-07-21
  • 2022-12-23
  • 2021-05-18
  • 2022-12-23
  • 2022-12-23
  • 2021-06-17
相关资源
相似解决方案