实现窗体拖动的两种方法
2013-03-10 22:47
330 查看
方法1:系统消息
方法2:事件
protected override void WndProc(ref Message msg) { base.WndProc(ref msg); const int WM_NCHITTEST = 0x84; const int HTCLIENT = 0x01; if (msg.Msg == WM_NCHITTEST) if (HTCLIENT == msg.Result.ToInt32()) { Point p = new Point(); p.X = (msg.LParam.ToInt32() & 0xFFFF); p.Y = (msg.LParam.ToInt32() >> 16); p = PointToClient(p); msg.Result = new IntPtr(2); } }
方法2:事件
private int mx = 0, my = 0; private bool mc = false; protected override void OnMouseDown(MouseEventArgs e) { mx = e.X; my = e.Y; mc = true; } protected override void OnMouseMove(MouseEventArgs e) { if (mc == true) { this.Left = this.Left + (e.X - mx); this.Top = this.Top + (e.Y - my); } } protected override void OnMouseUp(MouseEventArgs e) { mc = false; }
相关文章推荐
- C#中实现鼠标拖动窗体的方法
- Java实现掷骰子控制台和窗体两种实现方法
- 三种方法实现窗体的拖动
- 鼠标拖动层(可任意绑定DIV标签)的两种实现方法
- c# 实现Label拖动的两种方法
- 窗体中拖动panel,并且不会拖动至窗体外部程序实现方法。
- 拖动窗体的两种方法
- Android实现拖动效果的两种方法
- c# 实现Label拖动的两种方法
- winform实现拖动文件到窗体上的方法
- 三种方法实现Delphi无标题窗体的拖动
- 点击窗体任意部分拖动窗体实现方法
- c#中两种方法拖动没有边框的窗体
- VB中利用API函数实现特殊窗体的两种方法
- java在线聊天项目0.3版本 制作客户端窗体,实现发送按钮和回车发送信息功能,使用ActionListener监听事件中actionPerformed方法(用内部类和匿名内部类两种方法)
- Python with语句上下文管理器两种实现方法分析
- jsp实现页面跳转的两种方法
- CI框架支持$_GET的两种实现方法
- 两种方法实现托盘功能
- 一条线两种颜色的实现方法