C#窗口任意位置拖动

转载 2013年08月11日 16:45:32

网上找来的一段代码,测试有效。注意要添加System.Runtime.InteropServices的引用

using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        [DllImport("user32.dll")]
        public static extern bool ReleaseCapture();
        
        [DllImport("user32.dll")]
        public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
        public const int WM_SYSCOMMAND = 0x0112;
        public const int SC_MOVE = 0xF010;
        public const int HTCAPTION = 0x0002;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            ReleaseCapture();
            SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
        }
    }
}

两种方法实现点击窗口任意位置的拖拽

一般的窗口只有点击地址标题栏才能实现拖拽,以下代码可以实现点击任何位置产生拖拽。  1> 首先介绍MFC实现的方法: 在对话框“属性”栏中调出“message”中的WM_NCHITTEST,对于函...
  • stallion5632
  • stallion5632
  • 2011年08月24日 16:00
  • 670

C#点击窗口任意位置可拖拽

直接上代码 private Point offset; private void Form1_MouseDown(object sender, MouseEventArgs e) { ...
  • ErErFei
  • ErErFei
  • 2016年02月03日 13:43
  • 2360

VC/MFC拖动窗口任意位置移动窗口

除了拖动标题栏移动窗口以外,我们也可以拖动窗口任意位置(除控件)位置而使对话框移动。 这里只讲述基于对话框的程序 class c**dlg:public CDialog { //Constru...
  • luanwujian
  • luanwujian
  • 2013年06月08日 22:34
  • 2593

任意位置拖动窗口

点击窗口任意位置进行拖动的方法:在鼠标左键按下消息响应函数中增加以下语句://向系统发送HTCAPTION消息,让系统以为鼠标点在标题栏上,完成窗口的拖动PostMessage(WM_NCLBUTTO...
  • shyboy_NWPU
  • shyboy_NWPU
  • 2010年03月10日 20:09
  • 568

拖动窗口任意位置移动窗口(网上找的没有整理)

除了拖动标题栏移动窗口以外,我们也可以拖动窗口任意位置(除控件)位置而使对话框移动。 ...
  • darkduck9989
  • darkduck9989
  • 2007年10月17日 10:40
  • 2110

解决主窗体拖拽移动过程中DoModal出来的窗体无法收到鼠标消息问题

首先详细说明一下出现问题的情况:      现在有一个基于WTL的主窗体,可以在特定情况下收到用户自定义的消息X,并在处理这个消息X的函数中弹出一个模态窗口。如果在拖拽主窗体使之不断移动的过程中,收到...
  • ksksks
  • ksksks
  • 2011年02月11日 17:18
  • 882

c# 实现用鼠标拖动没有标题栏的窗口(窗体的任何部分都可实现拖动效果)

上面形式的窗体,实现窗体的任何部分都可
  • soft_123456
  • soft_123456
  • 2014年11月04日 10:05
  • 1549

mfc任意位置实现窗口拖动

1 系统标题栏窗口拖动的实现  当鼠标在窗口内移动,点击或者释放时都会产生WM_NCHITTEST消息,响应函数OnNcHitTest会返回一个枚举值,mfc会根据这个枚举值进行相应的处理  当返...
  • linjielig
  • linjielig
  • 2013年06月01日 12:11
  • 1291

C# winform实现鼠标左键拖动窗体

public partial class Form1 : Form     {         public Form1()         {             InitializeC...
  • haoxiang110
  • haoxiang110
  • 2015年01月26日 17:21
  • 5264

java swing设置窗体无边框后鼠标还能拖动窗体的方法

import java.awt.EventQueue; import java.awt.Point; import java.awt.event.MouseAdapter; import jav...
  • W_Z_W_888
  • W_Z_W_888
  • 2017年07月24日 00:56
  • 1301
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#窗口任意位置拖动
举报原因:
原因补充:

(最多只允许输入30个字)