[转]C#鼠标拖动任意控件

C#鼠标拖动任意控件(winform)

分类: c#2011-08-15 22:51 178人阅读 评论(0) 收藏 举报

winformc#userwindowsobjectapi

 1         using System.Runtime.InteropServices;
 2         //并为控件 添加 MouseDown 事件
 3
 4         // C#鼠标拖动任意控件
 5
 6         // 利用Windows的API函数:SendMessage 和 ReleaseCapture
 7         const uint WM_SYSCOMMAND = 0x0112;
 8         const uint SC_MOVE = 0xF010;
 9         const uint HTCAPTION = 0x0002;
10
11         [DllImport("user32.dll", EntryPoint = "SendMessageA")]
12         private static extern int SendMessage(IntPtr hwnd, uint wMsg, uint wParam, uint lParam);
13         [DllImport("user32.dll")]
14         private static extern int ReleaseCapture();
15
16         void ControlMouseDown(object sender, MouseEventArgs e)
17         {
18             ReleaseCapture();
19             SendMessage((sender as Control).Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
20         }

[转]C#鼠标拖动任意控件

时间: 2024-10-12 19:24:44

[转]C#鼠标拖动任意控件的相关文章

WPF 使用鼠标拖动一个控件的实现[2018.7.15]

原文:WPF 使用鼠标拖动一个控件的实现[2018.7.15] Q:已经把一个Shape和一个TextBlock组合起来放到了一个Grid中,现在想要实现用鼠标拖动这个Grid到任意位置的功能,如何做? <Grid Height="50" Width="50"> <Ellipse Fill="Yellow" Stroke="Blue" Height="50" Width="50&

3、如何实现拖动PictureBox控件

C#中如何实现拖动PictureBox控件 思路是这样的.得有三个变量.记录x坐标: int xPos;记录y坐标: int yPos;记录是否按下鼠标: bool MoveFlag; //在picturebox的鼠标按下事件里,记录三个变量.private void picBox_MouseDown(object sender, MouseEventArgs e){    MoveFlag = true;//已经按下.    xPos = e.X;//当前x坐标.    yPos = e.Y;

VC/MFC 当鼠标移到控件上时显示提示信息

VC/MFC 当鼠标移到控件上时显示提示信息 ToolTip是Win32中一个通用控件,MFC中为其生成了一个类CToolTipCtrl,总的说来其使用方法是较简单的,下面讲一下它的一般用法和高级用法. 一般用法步骤:  添加CToolTipCtrl成员变量 m_tt.  在父窗口中调用EnableToolTips(TRUE);  在窗口的OnCreate(或者其他适当的位置)中向ToolTip中添加需要显示Tip的子窗口,并同时指定相应的显示字串CToolTipCtrl::AddTool(pW

SeekBar拖动条控件

SeekBar拖动条控件 一.简介 1. 二.SeekBar拖动条控件使用方法 1.创建SeekBar控件 <SeekBar android:id="@+id/SeekBar1" android:layout_width="match_parent" android:layout_height="wrap_content" android:progress="30" /> 2.添加setOnSeekBarChang

独家原创,拖拽任意控件移动任意目标,拖拽控件移动整个窗体

独家原创,拖拽任意控件移动任意目标,拖拽控件移动整个窗体,在无边框窗体及其友好的实现拖拽移动窗体 http://www.cnblogs.com/vonly/ only原创首发,vonly.net 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Configuration; 5 using System.Diagnostics; 6 using Sys

wpf鼠标捕获与控件交互——UIElement.CaptureMouse

应用场景是这样的,我需要拖动一个元素在屏幕上移动,注册了被移动元素的MouseMove事件,但是当鼠标移到被移动元素的外面时,移动失效,且鼠标的手势变成了普通的箭头形状,于是就找到了以下的解决方案. 本例实现了一个鼠标控制控件移动的简单例子,配合鼠标捕获达成预想效果: 1.新建一个wpf应用程序,为了演示效果,xaml简单修改如下:共有两个圆(绿.黄),下面将要实现如何用鼠标拖动他们移动. <Window x:Class="WpfApplication.MainWindow" x

VB6/VBA中跟踪鼠标移出窗体控件事件(类模块成员函数指针CHooker类应用)

前几天发了一篇博文,是关于获取VB类模块成员函数指针的内容(http://www.cnblogs.com/alexywt/p/5880993.html):今天我就发一下我的应用实例. VB中默认是没有鼠标移出事件响应的,而这个事件其实在项目开发中,实用性很强,很多时候需要在鼠标移出窗体或控件时做些事情:没有这个事件会感觉很费力: 今天我所说的实际案例就是,在窗体上,设计一个SplitterBar控件,窗体的最终用户使用这个控件可以在运行程序时任意调整其内部控件大小. 我在第二篇参考博文作者开发的

Android-满屏幕拖动的控件

本文转载自师兄一篇博客:http://blog.csdn.net/yayun0516/article/details/52254818 觉得跟之前的模拟小火箭很相似,又有学习的地方,能作为知识补充.所以转载一起学习.大家也可以关注他的文章哦. 也就是,用户可以随心所欲的拖动控件,布局文件很简单就是一个Button控件: <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:andro

鼠标在某个控件上按下,然后离开后弹起,如何捕获这个鼠标弹起事件

默认情况下当鼠标移出控件外部后控件将获取不到WM_LBUTTONUP消息.以下通过SetCapture函数实现获取. SetCapture 函数功能: 该函数在属于当前线程的指定窗口里设置鼠标捕获.一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内.同一时刻只能有一个窗口捕获鼠标.如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口. LRESULT CALLBACK TestProc(HWND hwnd, UINT msg, WPARAM