资料:
在网上查了下, 一般都是拦截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);
就这么简单
阻止WinForm窗体拖动
本文介绍了一种在.NET2.0 WinForm应用程序中阻止窗体被拖动的方法。通过对WM_NCLBUTTONDOWN消息的拦截与过滤,可以有效避免窗体的非客户区域被用作拖动触发,实现禁用窗体拖动的功能。
8464

被折叠的 条评论
为什么被折叠?



