欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > C# >内容正文

C#

C#-窗体鼠标穿透

发布时间:2025/6/17 C# 15 豆豆
生活随笔 收集整理的这篇文章主要介绍了 C#-窗体鼠标穿透 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
#region 窗体鼠标穿透private const uint WS_EX_LAYERED = 0x80000;private const int WS_EX_TRANSPARENT = 0x20;private const int GWL_STYLE = (-16);private const int GWL_EXSTYLE = (-20);private const int LWA_ALPHA = 0;[DllImport("user32", EntryPoint = "SetWindowLong")]private static extern uint SetWindowLong(IntPtr hwnd,int nIndex,uint dwNewLong);[DllImport("user32", EntryPoint = "GetWindowLong")]private static extern uint GetWindowLong(IntPtr hwnd,int nIndex);[DllImport("user32", EntryPoint = "SetLayeredWindowAttributes")]private static extern int SetLayeredWindowAttributes(IntPtr hwnd,int crKey,int bAlpha,int dwFlags);/// <summary>/// 声明委托类/// </summary>/// <param name="MsgStr"></param>public delegate void FormCt();/// <summary>/// 定义委托/// </summary>public static FormCt Ct;/// <summary> /// 设置窗体具有鼠标穿透效果 /// </summary> private void SetPenetrate(){if (this.InvokeRequired){this.Invoke(Ct);}else{this.TopMost = true;GetWindowLong(this.Handle, GWL_EXSTYLE);SetWindowLong(this.Handle, GWL_EXSTYLE, WS_EX_TRANSPARENT | WS_EX_LAYERED);SetLayeredWindowAttributes(this.Handle, 0, 100, LWA_ALPHA);}}#endregion

总结

以上是生活随笔为你收集整理的C#-窗体鼠标穿透的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。