WinForm特效之桌面上的遮罩层实现方法
2014-09-20 10:00
771 查看
本文实例讲述了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下实现图片切换特效的方法
- Winform下实现图片切换特效的方法
- WinForm特效:桌面上的遮罩层
- WinForm特效:桌面上的遮罩层 收藏
- WinForm特效:桌面上的遮罩层
- Flash实现透明度渐变遮罩的方法
- 实现WinForm全球化的简单方法
- 关于C#Winform中进度条的实现方法
- WinForm程序启动时不显示主窗体的实现方法
- 方法自身实现异部调用和WinForm上图片切换效果
- 域应用盘点(2)实现桌面墙纸的漫游方法
- winform md5加密实现方法
- 实现WinForm全球化的简单方法
- Winform程序多语言国际化实现的简单方法
- Winform程序多语言国际化实现的简单方法
- 符合WEB标准的滚动文字特效的实现方法
- WinForm最小化到系统托盘后,再次激活需要验证的实现方法
- VS2005 WinForm程序TextBox变成下划线的一种实现方法
- 关于符合WEB标准的滚动文字特效的实现方法
- 用Canvas可以实现很多特效,这里仅仅列出在Canvas上更改字体以及背景的方法。