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#教程学习
编程开发子分类