手机
当前位置:查字典教程网 >编程开发 >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数据库的实现方法

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

C#图片压缩的实现方法

.NET单点登陆的实现方法及思路

C# 语音功能的实现方法

C#中使用IrisSkin2.dll美化WinForm程序界面的方法

WinForm中快捷键与组合按键的设置方法

WinForm DataGridView控件隔行变色的小例子

解决C#全屏幕截图的实现方法

WinForm中的登录实现

精品推荐
分类导航