C#窗体随意移动
//全区域移动
const int WM_NCLBUTTONDOWN = 0xA1;
const int HT_CAPTION = 0x2;
[DllImport("user32.dll")]
static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
protected override void OnMouseDown(MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
this.Capture = false;
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, );
}
else
{
this.Close(); // 右键可以退出窗体
}
}
//标题区域移动
[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 void ShapedForm_MouseDown(object sender, MouseEventArgs e)
{
ReleaseCapture();
SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, );
}
C#窗体随意移动的更多相关文章
- 【VC】Dialog 窗体随意切割子窗体。
用 Dialog 对话框来实现窗体的随意切割. 在资源中加入 Dialog 选择 IDD_FORMVIEW 资源..分别新建FormViewOne,FormViewTwo FormViewThre ...
- C#子窗体闪烁问题解决
在父窗体随意为之添加 protected override CreateParams CreateParams { get { XtraForm xa = _App.Framework.MainFor ...
- C# winform 界面美化技巧(扁平化设计)
关于C#界面美化的一些小技巧 在不使用第三方控件如 IrisSkin 的前提下,依然可以对winform做出让人眼前一亮的美化 首先,我们先来实现主界面的扁平化 此处分为两个步骤,第一步是更改winf ...
- WPF入门教程系列十九——ListView示例(一)
经过前面的学习,今天我做一个比较综合的WPF程序示例,主要包括以下功能: 1) 查询功能.从数据库(本地数据库(local)/Test中的S_City表中读取城市信息数据,然后展示到WPF的Windo ...
- MacBook 经常使用快捷键
Mac OS X系统图形表示方法 ⇧ = shift ⌃ = control ⌥ = option / alt Home=fn + ◄ End=fn + ► Page Up=fn + ▲ Pag ...
- Winform 美化
首先,我们先来实现主界面的扁平化 此处分为两个步骤,第一步是更改winform自带的MainForm窗体属性,第二步是添加窗体事件. 将主窗体FormBorderStyle更改为None,这样就得到了 ...
- C# 主界面的扁平化
如果需要查看更多文章,请微信搜索公众号 csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群, 我邀请你进群! ! ! --------------------------- ...
- windows 8,关闭随意窗体都提示“已停止工作”的解决的方法
电脑用的好好的,突然出现了关闭随意窗体都提示"已停止工作",每次都是这样.想想也就是偶尔优化一下,近期也没有改动过什么系统设置呀,突然想到昨晚JLink_V8固件丢失 ...
- c# winform窗体如何设置才可以不能随意拖动大小
执行以下两个步骤,能够禁止用户改变窗体的大小 (一)步骤1 设置窗体的FormBorderStyle属性为下列五个值中的任意一个 None:将窗口设置为无边框.无标题栏.用户无法改变窗口的大小,也无法 ...
随机推荐
- Windows7 打开word2003提示:向程序发送命令时出现错误 解决方案
1.关闭所有打开的Word文档:(包括任务管理器里的进程)2.复制这条命令:%appdata%\microsoft\templates3.开始 → 运行 → 粘贴上面复制的命令 → 确定4.在打开的目 ...
- 【学术篇】SDOI2008 仪仗队
Part1:传送门&吐槽 水题... 然而由于线筛里面的\(j\)打成了\(i\)然后就不能1A了OvO Part2:题目分析 这个正方形是对称的... 而且很显然对角线上只有一个点会被看到. ...
- bootsrap-----固定布局解析
<div class="container"> container </div> .container { .container-fixed();容器的wi ...
- SpringBoot 非web项目简单架构
1.截图 2.DemoService package com.github.weiwei02.springcloudtaskdemo; import org.springframework.beans ...
- 【luoguP4721】分治 FFT
description 给定长度为\(n-1\)的数组\(g[1],g[2],..,g[n-1]\),求\(f[0],f[1],..,f[n-1]\),其中 \[f[i]=\sum_{j=1}^if[ ...
- 校园商铺-2项目设计和框架搭建-9验证Service
1. 新建接口 main: com.csj2018.o2o.service/AreaService.java package com.csj2018.o2o.service; import java. ...
- Linux命令速查手册(第2版)学习
第1章.需要了解的命令行相关事项 表1-1 如何在文件名字符中使用特殊字符 字符 建议 / 绝不使用.不能转义 \ 必须转义.避免使用 _ 绝不能作为文件或目录名的第一个字符 [] 必须转义.避免使用 ...
- vue双向绑定的原理
什么是双向数据绑定?Vue是一个MVVM框架,数据绑定简单来说,就是当数据发生变化时,相应的视图会进行更新,当视图更新时,数据也会跟着变化. 实现数据绑定的方式大致有以下几种: - 1.发布者-订阅者 ...
- (转)ActiveMQ 使用场景
转:http://306963591.iteye.com/blog/1044166 ActiveMQ 安装测试就不做介绍了,下面我说说ActiveMQ 使用场景. 1.非均匀应用集成 ActiveMQ ...
- hdu多校第四场1001 (hdu6614) AND Minimum Spanning Tree 签到
题意: 一个完全图,某两点边权为这两点编号之按位与,求最小生成树,输出字典序最小的. 题解: 如果点数不为$2^n-1$,则每一点均可找到一点,两点之间边权为0,只需找到该点二进制下其最左边的0是第几 ...