C# 鼠标穿透窗体功能的实现方法_C#教程-查字典教程网
C# 鼠标穿透窗体功能的实现方法
C# 鼠标穿透窗体功能的实现方法
发布时间:2016-12-28 来源:查字典编辑
摘要:同样该功能需要加载命名空间usingSystem.Runtime.InteropServices;复制代码代码如下:privateconst...

同样该功能需要加载命名空间

using System.Runtime.InteropServices;

复制代码 代码如下:

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>

public void SetPenetrate()

{

GetWindowLong(this.Handle, GWL_EXSTYLE);

SetWindowLong(this.Handle, GWL_EXSTYLE, WS_EX_TRANSPARENT | WS_EX_LAYERED);

SetLayeredWindowAttributes(this.Handle, 0, 100, LWA_ALPHA);

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新C#教程学习
    热门C#教程学习
    编程开发子分类