c#实现随鼠标移动窗体】的更多相关文章

一.关于起因 前几天发了一篇博文,是关于获取VB类模块成员函数指针的内容(http://www.cnblogs.com/alexywt/p/5880993.html):今天我就发一下我的应用实例. VB中默认是没有鼠标移出事件响应的,而这个事件其实在项目开发中,实用性很强,很多时候需要在鼠标移出窗体或控件时做些事情:没有这个事件会感觉很费力: 今天我所说的实际案例就是,在窗体上,设计一个SplitterBar控件,窗体的最终用户使用这个控件可以在运行程序时任意调整其内部控件大小. 二.修改CHo…
无边框窗体如何实现用鼠标拖动窗体边缘实现窗体大小变动呢?下面介绍一种方法,通过以下几个步骤即可实现: 1.实现WM_NCHITTEST消息,实现四条边框的模拟 2.实现WM_NCLBUTTONDOWN,发送窗体拖曳变化的消息 具体阐述如下: 1.实现WM_NCHITTEST消息,实现四条边框的模拟 参考代码如下: LRESULT CUserForm::OnNcHitTest(CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CRect rect; Get…
转自原文 C# 鼠标穿透窗体与恢复 引入user32.dll [DllImport("user32.dll")] public static extern uint SetWindowLong(IntPtr h, int n, uint x); 使指定窗体穿透,this.Handle为将要设为穿透效果的窗体句柄 SetWindowLong(this.Handle, -20, 0x20 | 0x80000); 恢复 this.FormBorderStyle = this.FormBord…
1.改变窗体图标 先把图标放到项目文件夹中,然后点击窗体属性的ICON添加即可. 参考:https://www.cnblogs.com/yangxuli/p/8075484.html?tdsourcetag=s_pctim_aiomsg. 2.任意确定窗体程序打开初始打开位置 这里以窗体放置在屏幕下方居中为例,先获取当前显示屏大小,该函数是不包括任务栏的: //获取显示器屏幕的大小,不包括任务栏.停靠窗口 int SH = Screen.PrimaryScreen.WorkingArea.Hei…
通过以下代码,在窗体启动后调用方法SetPenetrate() 即可实现窗体的穿透功能. 同样该功能需要加载命名空间 using System.Runtime.InteropServices; private const uint WS_EX_LAYERED = 0x80000; private const int WS_EX_TRANSPARENT = 0x20; ); ); ; [DllImport("user32", EntryPoint = "SetWindowLon…
private void MainForm_Load(object sender, EventArgs e) { //绑定事件 MouseMove += Form_MouseMove; MouseDown += Form_MouseDown; } private Point _mousePoint; private void Form_MouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) {…
1.先把MaximizeBox和MinimumBox设置为false,这时你发现最大最小化按钮不见了,但是鼠标仍能调整窗体的大小. 2.有人说直接把MaximumSize和MinimumSize设置成和Form的Size一样就好了,对,这样是可以固定窗体的大小,但这没有从本质上限定不能调整大小,只是把窗体的最大最小两 个极限设成一样的值,这个不能达到我们的目的,鼠标放到窗体边缘仍然能看到调整大小的光标. 3.接下来我们看关键的属性:AutoSizeMode,其默认值为Grow,我们将他改为Gro…
对窗体加越界限制后,鼠标拖动窗体越界时,窗体不能动,鼠标位置可动,但窗体不再越界时,鼠标位置还能回到鼠标按下时相对窗体的坐标:1.首先创建一个窗体Form1,然后在窗体上拖一个button1按钮(主要通过这个按钮来拖动窗体) 2.然后对按钮添加鼠标按下事件.鼠标移动事件和鼠标抬起事件,事件里面是对窗体和鼠标坐标的操作,整体代码如下:using System.Drawing;using System.Windows.Forms;namespace 窗体越界鼠标还能回到初始坐标{    public…
一 最大化 二 最小化 三 关闭 四 点击任务栏隐藏显示 五 点击鼠标左键移动窗体 六 阴影效果鼠标左键移动窗口 #region UI设置 最大化.最小化.关闭.鼠标移动窗口.点击任务栏切换窗口 this.pnlMin.MouseHover += new EventHandler(pnlMin_MouseMove);//最小化按钮的鼠标经过样式改变事件 this.pnlMin.MouseLeave += new EventHandler(pnlMin_MouseLeave);//最小化按钮的鼠标…
在编程中,有时打开的窗体没有边框,但是我们仍然想在鼠标放在窗体上就能拖动窗体,这样我们只需要以窗体中的一个控件为参考,我们在这里以panel为例子: public class PanelNew : PanelEx { private Point CPoint = new Point(); protected override void OnMouseDown(System.Windows.Forms.MouseEventArgs e) { CPoint.X = -e.X; CPoint.Y =…
之前写过如何用 Qt 现成的方法写出无边框半透明的不规则窗体:<Qt 不规则窗体 – 无边框半透明> 其实有一个很特殊的窗体属性一直以来都伴随着不规则窗体出现,这就是本文要介绍的鼠标点击穿透.鼠标点击穿透被广泛应用在桌面挂件程序上,目的是为了避免鼠标对窗体进行误操作. Qt 并没有自带的方法可以实现该功能,所以需要调用系统本身的 API 来实现.这里介绍下 Windows 下和 Linux 下如何实现鼠标点击穿透. Windows API : SetWindowLong SetWindowLo…
建立窗体的名称修改为:Form_HoverTree 文后附有源码下载. 主要代码: Point _HoverTreePosition; public Form_HoverTree() { InitializeComponent(); _HoverTreePosition = new Point(); } /// <summary> /// 记录鼠标起始位置 hovertree.com /// </summary> private void Form_HoverTree_MouseD…
private void BaseCForm_Load(object sender, EventArgs e)        {            DrawStyle(); this.panel1.MouseDown += new MouseEventHandler(panel1_MouseDown);            this.panel1.MouseUp += new MouseEventHandler(panel1_MouseUp);            this.panel1…
QQ有个靠边隐藏的功能,使用起来很方便:在屏幕上拖动QQ的主窗体,当窗体的上边沿与屏幕的上边沿对齐时,主窗体就会duang~~地隐藏起来,当将鼠标移到屏幕上边沿的对应区域时,主窗体又会duang~~显示出来. 我在GG的最新版4.2中也增加了靠边隐藏的功能,支持靠左边沿隐藏.靠上边沿隐藏.靠右边沿隐藏三种模式,并且,将靠边隐藏实现为了一个可复用的组件AutoDocker. 那么,靠边隐藏功能到底是怎么实现的了?(最初实现的过程中,遇到了很多问题,花了不少时间,现在直接把成果共享出来) 想要直接下…
鼠标的操作控制: 鼠标是计算机的一个重要组成部分,有很多默认的设置,如双击时间间隔,闪烁频率,移动速度等,本篇使用C#获取这些基本的信息. 1.1获取鼠标信息 ①实例001 获取鼠标双击时间间隔 主要用到的API函数为GetDoubleClickTime.函数主要用来判断连续2次鼠标单击之间会被处理成双击的时间间隔. 主要程序代码如下: [DllImport("user32.dll", EntryPoint = "GetDoubleClickTime")] publ…
实例018 利用鼠标绘图 光盘位置:光盘\MR\01\018 在常用的画图软件中,用户一般都可以通过鼠标在其中绘图,那么该功能是如何实现的呢?本实例将讲解如何使用C#实现通过拖动鼠标在窗体上绘图的功能,实例运行效果如图1.18所示.   图1.18  利用鼠标绘图 本实例实现时主要用到了Graphics类的DrawLine方法和MouseEventArgs类的X属性.Y属性,下面分别对它们进行详细介绍. Graphics类中的DrawLine方法主要用来绘制直线,该方法为可重载方法,本实例中用到…
第一种采用,需注意窗体上的控件是否把窗体覆盖了...MouseDown.MouseMove.MouseUp事件应该是鼠标所处位置最顶层的控件的事件在窗体的类中声明两个变量private Point mouseOffset; //记录鼠标指针的坐标private bool isMouseDown = false; //记录鼠标按键是否按下 创建该窗体 MouseDown.MouseMove.MouseUp事件的相应处理程序private void Form1_MouseDown(object se…
为实现移动无标题栏窗体的功能,我从网上寻找.整理了以下资料,以备不时之需: 该方法适用于有标题栏和无标题栏窗体,适用于窗体内控件,当然 Form 也不例外, 只须添加 MouseDown.MouseMove 事件,无需添加 MouseUp 事件, 也无需考虑 Form 是否有标题栏. 本方法采用 Control.MousePosition,而没有采用 MouseEventArgs e 获取数据, 是因为这样无需考虑窗体有无标题栏和边框的大小, 也无需考虑是窗体引发事件,还是窗体内控件引发事件.…
大家都知道QQ有一个自动停靠功能,即“上.左.右”,当你把窗体拖到屏幕边缘,然后移开鼠标它会自动缩放,然后只显示一小小点出来,我们仔细观察会发现其实它只露3像素左右的边缘,当你鼠标移上去它又会伸出来,介于普通入门级学者要求艾伟就在这里给需要的朋友们分享分享我是怎么实现的,代码很少,效果如下: 先在当前类里弄几个变量,方便逻辑判断: QQ_MODE(用于记录窗体当前的停靠状态,即0为不停靠,1为X轴,2为Y轴,3为顶部),QQ_T(窗体缩放时显示出来的边缘大小),QQ_XY(鼠标坐标与窗体边缘多少…
Form1.cs using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms; namespace 手动改变自制窗体的大小{    public partial class Form1 : Form    {…
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms; namespace 磁性窗体的设计{    public partial class Frm_Libretto : Form    {      …
         Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda : 4.5.11    typesetting : Markdown   code """ @Author : 行初心 @Date : 18-9-30 @Blog : www.cnblogs.com/xingchuxin @Gitee : gitee.com/zhichengji…
转载:http://blog.csdn.net/dxsh126/article/details/2940226 首先,要用到一个WimdowsAPI函数,因此必须引入 using System.Runtime.InteropServices; 命名空间; 然后,这里有两种方法,一种使用API, 一种不用,重写WndProc窗口过程的方式不需要API函数.另一个方法需要两个: SendMessage 像指定窗口过程发送消息 ReleaseCapture 释放鼠标捕获 最后是一些必要的常数声明,这些…
//为DllImport导出命名空间, using System.Runtime.InteropServices; public partial class Form1 : System.Windows.Forms.Form { #region FormBorderStyle为None,拖放窗体 [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("user32.dl…
首先C#无标题栏窗体的实现代码 在load时实现 无工具栏+无窗口标题 private void Form1_Load(object sender, EventArgs e) { this.ControlBox = false; this.Text = ""; } 这样就可以实现无标题栏窗体了,示例效果 第一种实现点击窗口内区域移动窗体的方法 重写wndproc,截取在窗体区域内移动的消息, protected override void WndProc(ref Message m)…
前几天要做一个微信调一调的外挂,里面用到了尺子测量距离,然后就自己下载了一个电子尺,最近要升级我的跳一跳外挂,然后就准备自己做一个电子尺,嵌入到我的外挂里面,在嵌入到我的外挂之前,我自己做了一个完整版的电子纸,相当于一个小工具,这个电子尺的制作就涉及到了在透明窗体WinForm上绘图的知识.先放图看看   其中第二张图片就是在透明窗体上绘图实现,在这里用到窗体的TransparencyKey属性,该属性是指绘制到窗体上时将要显示的透明的颜色,好吧,我还是给你解释解释吧,之前我看到这句话的时候也不…
1.木马控制及通信方法包含:双管道,port重用.反弹技术.Hook技术,今天重点引用介绍一下hook的使用方法,hook信息后能够将结果发送到hacker邮箱等.实现攻击的目的. 转自:http://hi.baidu.com/mousetopshow/item/a951102d679f6e8f9c63d1b0 钩子能截获系统并得理发送给其他应用程序的消息,能完毕一般程序无法完毕的功能.掌握钩子的编程方法是非常有必要的 钩子分类 :  1.WH_CALLWNDPROC和WH_CALLWNDPRO…
设置窗口透明.窗口置顶.鼠标穿透    方法一. 缺点:边缘不平滑,有毛边 参考博客: 1.https://alastaira.wordpress.com/2015/06/15/creating-windowless-unity-applications/ 2.http://www.manew.com/thread-43230-1-1.html 3.https://blog.csdn.net/dark00800/article/details/70314432 关键代码 Shader "Cust…
先看效果: 这个小图标可以进行随意拖拽,点击还可以产生事件 随便演示一下,效果就是这样的. 下面直接演示如何制作: 新建一个窗体,设置窗体的FormBorderStyle为None(去掉窗体边框): 调整窗体的大小,和你的图标差不多大小就行,至于动态图,还在测试中,图标必须是没有背景的,因为有背景的图片展示出来,即时窗体透明,也会显示图片的白色背景,会很丑,所以要选没有背景的图片,可以网上找到之后自己拿ps把背景去掉,记住这里是图片背景,不是窗体背景! 窗体背景一般默认BackColor为Con…
一: 鼠标事件 <Button-1>                                                                     鼠标左键单击 <Button-2>                                                                     鼠标中键单击 <Button-3>                                              …