手机
当前位置:查字典教程网 >编程开发 >C#教程 >WinForm特效之桌面上的遮罩层实现方法
WinForm特效之桌面上的遮罩层实现方法
摘要:本文实例讲述了WinForm特效之桌面上的遮罩层实现方法,分享给大家供大家参考之用。具体如下:这个一个窗体特效,可以帮你了解几个window...

本文实例讲述了WinForm特效之桌面上的遮罩层实现方法,分享给大家供大家参考之用。具体如下:

这个一个窗体特效,可以帮你了解几个windows api函数。

效果:windows桌面上增加一个简单的遮罩层,其中WS_EX_TRANSPARENT 比较重要,它实现了鼠标穿透的功能。

主要功能代码如下:

using System; using System.Drawing; using System.Windows.Forms; using System.Runtime.InteropServices; namespace WindowsApplication40 { public partial class 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")] private 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(object sender, 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#程序设计的学习有所帮助。

【WinForm特效之桌面上的遮罩层实现方法】相关文章:

C#连接db2数据库的实现方法

c#中虚函数的相关使用方法

C#图片压缩的实现方法

解决用Aspose.Words,在word文档中创建表格的实现方法

c# winform取消右上角关闭按钮的实现方法

Winform跨线程操作的简单方法

C# 运用params修饰符来实现变长参数传递的方法

c# winform窗口一直置顶显示在桌面最上方或最底层的方法

WinForm中的登录实现

共享锁using范围的实现方法

精品推荐
分类导航