private void WmNcHitTest(ref Message m) //调整窗体大小 { int wparam = m.LParam.ToInt32(); Point mouseLocation = new Point(RenderHelper.LOWORD(wparam), RenderHelper.HIWORD(wparam)); mouseLocation = PointToClient(mouseLocation); if (WindowState != FormWindowState.Maximized) { if (CanResize == true) { if (mouseLocation.X < 5 && mouseLocation.Y < 5) { m.Result = new IntPtr(Win32.HTTOPLEFT); return; } if (mouseLocation.X > Width - 5 && mouseLocation.Y < 5) { m.Result = new IntPtr(Win32.HTTOPRIGHT); return; } if (mouseLocation.X < 5 && mouseLocation.Y > Height - 5) { m.Result = new IntPtr(Win32.HTBOTTOMLEFT); return; } if (mouseLocation.X > Width - 5 && mouseLocation.Y > Height - 5) { m.Result = new IntPtr(Win32.HTBOTTOMRIGHT); return; } if (mouseLocation.Y < 3) { m.Result = new IntPtr(Win32.HTTOP); return; } if (mouseLocation.Y > Height - 3) { m.Result = new IntPtr(Win32.HTBOTTOM); return; } if (mouseLocation.X < 3) { m.Result = new IntPtr(Win32.HTLEFT); return; } if (mouseLocation.X > Width - 3) { m.Result = new IntPtr(Win32.HTRIGHT); return; } } } m.Result = new IntPtr(Win32.HTCLIENT); }
protected override void OnCreateControl() { base.OnCreateControl(); RenderHelper.SetFormRoundRectRgn(this, Radius); }