资料:
在网上查了下, 一般都是拦截WM_NCHITTEST,对result进行过滤。
但是我发现在.NET 2.0 WINFORM下,拦截到的WM_NCHITTEST消息的Result都是0,无法区分客户和非客户区域;
我的解决方法:
查了WINDOWS消息大全,发现WM_NCLBUTTONDOWN是“当光标在一个窗口的非客户区同时按下鼠标左键时提交此消息” 。
我通过拦截此消息,并过滤,实现了阻止窗体拖动并且没有拖动边框。
private const int WM_NCLBUTTONDOWN = 0x00A1;
switch (m.Msg)
{
case WM_NCLBUTTONDOWN:
return;
}
base.WndProc(ref m);
就这么简单