首先C#无标题栏窗体的实现代码 在load时实现 无工具栏+无窗口标题 private void Form1_Load(object sender, EventArgs e) { this.ControlBox = false; this.Text = ""; } 这样就可以实现无标题栏窗体了,示例效果 第一种实现点击窗口内区域移动窗体的方法 重写wndproc,截取在窗体区域内移动的消息, protected override void WndProc(ref Message m)…
第一种,手工移动. 该方法根据鼠标位置实现窗体的移动.网上有很多相关的例子,这里不再多讲. 第二种,调用系统API原理:是当鼠标左键按下时,让系统认为是在标题栏按下的.这里我们用到了winapi里的WM_LBUTTONDOWN(客户区鼠标左键按下,值:0x0201)和WM_NCLBUTTONDOWN(非客户区鼠标左键按下,值:0x00A1)及HTCAPTION(鼠标位置在标题栏,值:2,为什么是2,请参照https://msdn.microsoft.com/en-us/library/windo…
对于无标题栏窗体,也就是FormBorderStyle等于System.Windows.Forms.FormBorderStyle.None的窗体,点击任务栏图标的时候,是不能象标准窗体那样最小化或还原的.把下面的代码加到你的Form实现类中,即可实现点击任务栏图标正常最小化或还原窗体. protected override CreateParams CreateParams { get { const int WS_MINIMIZEBOX = 0x00020000;  // Winuser.h…
为实现移动无标题栏窗体的功能,我从网上寻找.整理了以下资料,以备不时之需: 该方法适用于有标题栏和无标题栏窗体,适用于窗体内控件,当然 Form 也不例外, 只须添加 MouseDown.MouseMove 事件,无需添加 MouseUp 事件, 也无需考虑 Form 是否有标题栏. 本方法采用 Control.MousePosition,而没有采用 MouseEventArgs e 获取数据, 是因为这样无需考虑窗体有无标题栏和边框的大小, 也无需考虑是窗体引发事件,还是窗体内控件引发事件.…
第一种采用,需注意窗体上的控件是否把窗体覆盖了...MouseDown.MouseMove.MouseUp事件应该是鼠标所处位置最顶层的控件的事件在窗体的类中声明两个变量private Point mouseOffset; //记录鼠标指针的坐标private bool isMouseDown = false; //记录鼠标按键是否按下 创建该窗体 MouseDown.MouseMove.MouseUp事件的相应处理程序private void Form1_MouseDown(object se…
/// <summary> /// 实现窗体的最小化 /// </summary> protected override CreateParams CreateParams { get { const int WS_MINIMIZEBOX = 0x00020000; CreateParams cp = base.CreateParams; cp.Style = cp.Style | WS_MINIMIZEBOX; // 允许最小化操作 return cp; } }…
老蔡写了一个基于QT的窗体程序,而过去写的类的调试信息都是用cout显示的,苦于窗体程序无法显示cout信息很多信息都看不到,于是就想到让控制台和窗体同时显示.显示控制台方法如下 1.项目(或者叫“工程”,或者project) 2.连接器(linker) 3.系统(system) 4.将第一项选成控制台(Console).不过务必要记得选择控制台前是在什么选项上,等调试结束后选回去,不然程序编译出来,就带着那个黑框框的控制台了. 打完收工.希望调试C++看不到控制台的天使们看到这篇文章后不再继续…
区间求mex的两种方法 1.莫队+分块/莫队+二分+树状数组 2.线段树 预处理1-i的sg值(用一个vis数组,一个cur指针) 预处理nxt数组(a[nxt[i]]=a[i]) 枚举左端点l, 考虑将l右移一位,则从l到nxt[i]-1中没有a[l],用线段树取个min就好了 代码1:(莫队) #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #inc…
Tags : 总结 莫队 线段树 区间取mex的几种方法 题目大意 无修改,求区间 \(mex\) 做法1 莫队+二分+树状数组 树状数组维护维护桶,每次扫完二分答案,用树状数组判断 \(O(n\sqrt n \log n)\) 做法2 莫队+分块 分块维护桶,若块内满,则答案不在这一块,否则进去找 \(O(n\sqrt n)\) 做法3 权值线段树+离线 预处理nxt数组(a[nxt[i]]=a[i]) 可以发现\(i+1\dots nxt[i]-1\)中不会出现\(a[i]\) 对于一个询问…
C#WinForm无边框窗体移动方法.模仿鼠标单击标题栏移动窗体位置 这里介绍俩种办法 方法一:直接通过修改窗体位置从而达到移动窗体的效果 方法二:直接伪装发送单击任务栏消息,让应用程序误以为单击任务栏从而移动窗体 新建窗体用于测试 方法一 1.定义一个位置信息Point用于存储鼠标位置 private Point mPoint; 2.给窗体等控件增加MouseDown和MouseMove事件 /// <summary> /// 鼠标按下 /// </summary> /// &l…