Winform无边框窗体的移动和阴影
2024-08-24 23:44:49
//窗体移动API
[DllImport("user32.dll")]
public static extern bool ReleaseCapture();
[DllImport("user32.dll")]
public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int IParam);
public const int WM_SYSCOMMAND = 0x0112;
public const int SC_MOVE = 0xF010;
public const int HTCAPTION = 0x0002;
[DllImport("user32")]
private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, IntPtr lParam);
private const int WM_SETREDRAW = 0xB; private void Form1_MouseDown(object sender, MouseEventArgs e)
{
if (this.WindowState == FormWindowState.Normal)
{
ReleaseCapture();
SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, );
}
}
//窗体阴影API
const int CS_DropSHADOW = 0x20000;
const int GCL_STYLE = (-);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int SetClassLong(IntPtr hwnd, int nIndex, int dwNewLong);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int GetClassLong(IntPtr hwnd, int nIndex); public Form1()
{
InitializeComponent();
SetClassLong(this.Handle, GCL_STYLE, GetClassLong(this.Handle, GCL_STYLE) | CS_DropSHADOW);
}
最新文章
- ES5基础之正则表达式01:初次见面
- Java日志系统及框架分析
- AI调色板
- mysql查看被锁住的表,正在进行的进程,已经杀掉进程的方法
- 关于python requests包新版本设置代理的问题
- width() innerwidth() outerwidth() css('width')
- POJ 3616 DP
- 17.1.1.5 Creating a Data Snapshot Using mysqldump
- CHM文件无法打开或无法搜索
- 走进 UITest for Xamarin.Forms
- 全球第一免费开源ERP Odoo Ubuntu最佳开发环境独家首发分享
- Logstash替换字符串,解析json数据,修改数据类型,获取日志时间
- django linux环境部署
- python基础成长之路四-基础数据类型方法
- org.apache.catalina.LifecycleException: Failed to stop component(生命周期异常)
- 【Java】 剑指offer(14) 二进制中1的个数
- 《全栈性能Jmeter》-3JMeter体系结构
- ssh 免密登陆
- 微信小程序里使用阿里巴巴矢量图标
- 前端模块化方案全解(CommonJS/AMD/CMD/ES6)