C#使用Windows API实现桌面上的遮罩层(鼠标穿透)
2013-08-11 17:58
471 查看
C#使用Windows API实现桌面上的遮罩层(鼠标穿透)
C#实现实现桌面上的遮罩层(鼠标穿透)主要通过一下几个API函数来实现:GetWindowLong,SetWindowLong,SetLayeredWindowAttributes。其中有一个Windows 消息 WS_EX_TRANSPARENT 比较重要,它实现了鼠标穿透的功能。 下面来看看完整的实现代码:using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace WindowsApplication40
{
public partia lclass Form1:Form
{
public Form1()
{
InitializeComponent();
}
[DllImport("user32.dll",EntryPoint="GetWindowLong")]
public static extern long GetWindowLong(IntPtr hwnd,int nIndex);
[DllImport("user32.dll",EntryPoint="SetWindowLong")]
public static extern long SetWindowLong(IntPtr hwnd,int nIndex,long dwNewLong);
[DllImport("user32",EntryPoint="SetLayeredWindowAttributes")]
public static extern int SetLayeredWindowAttributes(IntPtr Handle,int crKey,byte bAlpha,int dwFlags);
const int GWL_EXSTYLE=-20;
const int WS_EX_TRANSPARENT=0x20;
const int WS_EX_LAYERED=0x80000;
const int LWA_ALPHA=2;
private void Form1_Load(objec tsender,EventArgs e)
{
this.BackColor=Color.Silver;
this.TopMost=true;
this.FormBorderStyle=FormBorderStyle.None;
this.WindowState=FormWindowState.Maximized;
SetWindowLong(Handle,GWL_EXSTYLE,GetWindowLong(Handle,GWL_EXSTYLE)|WS_EX_TRANSPARENT|WS_EX_LAYERED);
SetLayeredWindowAttributes(Handle,0,128,LWA_ALPHA);
}
}
}
以上就是介绍C#使用Windows API实现桌面上的遮罩层(鼠标穿透),希望对你有所帮助。
相关文章推荐
- C#使用Windows API实现桌面上的遮罩层(鼠标穿透)
- C#使用Windows API实现桌面上的遮罩层(鼠标穿透)
- C#使用Windows API实现桌面上的遮罩层(鼠标穿透)
- C#中使用全局鼠标Hook实现全局双击动作捕获
- C# 实现鼠标穿透
- C# 鼠标穿透窗体功能的实现方法
- (转)C# 使用UDP组播实现局域网桌面共享
- C# 使用UDP组播实现局域网桌面共享
- 怎么实现“鼠标穿透”,即鼠标对窗体失去作用,对着它点右键要出现WINDOWS的桌面右菜单
- Redis总结(五)缓存雪崩和缓存穿透等问题 Web API系列(三)统一异常处理 C#总结(一)AutoResetEvent的使用介绍(用AutoResetEvent实现同步) C#总结(二)事件Event 介绍总结 C#总结(三)DataGridView增加全选列 Web API系列(二)接口安全和参数校验 RabbitMQ学习系列(六): RabbitMQ 高可用集群
- 怎么实现“鼠标穿透”,即鼠标对窗体失去作用,对着它点右键要出现WINDOWS的桌面右菜单
- 用C#写依附于桌面的透明带鼠标穿透窗体的总结。
- 使用C#代码实现增加用户帐号
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(二)----使用方法
- 使用C#实现sql server 2005 和Oracle 数据同步
- 【WPF】【C#】使用BackgroundWorker实现多线程/异步操作
- 3_C# 实现VMS客户端——使用log4net 写日志
- C#2.0中使用yield关键字简化枚举器的实现
- c# 使用FtpWebRequest,FtpWebResponse ,Stream 实现获取文件列表及下载
- jQuery实现鼠标滑过遮罩并高亮显示效果