无边框窗体拖动和改变大小
2012-12-19 17:14
603 查看
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) { switch (m.Msg) { case 0x0084: base.WndProc(ref m); 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; case 0x0201://鼠标左键按下的消息 m.Msg = 0x00A1;//更改消息为非客户区按下鼠标 m.LParam = IntPtr.Zero;//默认值 m.WParam = new IntPtr(2);//鼠标放在标题栏内 base.WndProc(ref m); break; default: base.WndProc(ref m); break; } }
从别的地方转过来的.原来的地址找不到了.对作者说一声抱歉.
相关文章推荐
- c++builder如何通过鼠标拖动改变无边框窗体的大小(bsnone)
- java中 实现无标题无边框的窗体能够用鼠标拖动改变窗口大小
- 无边框窗体的拖动以及大小改变的实现方式
- 去掉窗体的边框,并且禁止拖动改变窗体大小
- WinForm改变无边框窗体大小
- Qt 无边框窗体改变大小 完美实现(全部自己实现)
- Qt无边框MainWindow如何拖动四周改变大小
- Qt 无边框窗体改变大小 完美实现
- WPF 下无边框窗体改变大小和移动
- C#中无边框窗体改变大小
- c#禁止通过拖动,双击标题栏改变窗体大小
- NET 不规则、可改变大小、边框半透明窗体设计
- C# 改变无边框窗体尺寸大小的方法
- 无边框对话框拖动改变大小的实现总结
- MFC无边框的窗体实现用鼠标拖动窗体边缘实现窗体大小变化
- Qt 无边框窗体改变大小 完美实现
- DUI程序Demo2(注意拖动程序的边框改变程序界面的大小,OnNcHitTest消息中处理)
- MFC 无边框窗体实现用鼠标拖动窗体边缘实现窗体大小变化
- WPF 窗体中的 Canvas 限定范围拖动 鼠标滚轴改变大小
- Qt 无标题无边框程序的拖动和改变大小