当前位置:  编程技术>.net/c#/asp.net

WinForm特效之桌面上的遮罩层实现方法

    来源: 互联网  发布时间:2014-11-04

    本文导语:  本文实例讲述了WinForm特效之桌面上的遮罩层实现方法,分享给大家供大家参考之用。具体如下: 这个一个窗体特效,可以帮你了解几个windows api函数。 效果:windows桌面上增加一个简单的遮罩层,其中WS_EX_TRANSPARENT 比较重要,它...

本文实例讲述了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#程序设计的学习有所帮助。


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Winform实现抓取web页面内容的方法
  • WinForm实现关闭按钮不可用或隐藏的方法
  • WinForm实现读取Resource中文件的方法
  • C# Winform 整个窗口拖动的实现代码
  • c# winform 关闭窗体时同时结束线程实现思路
  • C#中禁止Winform窗体关闭的实现方法
  • C# winform编程中响应回车键的实现代码
  • c# 天气预报查询(winform方法)的实现代码(图文)
  • C#实现WinForm捕获最小化事件的方法
  • c#实现DataGridView控件隔行变色(winform)的代码
  • WinForm实现移除控件某个事件的方法
  • winform下实现win7 Aero磨砂效果实现代码
  • C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法
  • C# Winform 操作 INI 配置文件的实现代码
  • WinForm子窗体访问父窗体控件的实现方法
  • C# WinForm中Panel实现用鼠标操作滚动条的实例方法
  • c# winForm 窗口跳转后即关闭上一个窗口的实现代码
  • C# WinForm实现Win7 Aero透明效果代码
  • 基于C# winform实现图片上传功能的方法
  • WinForm中变Enter键为Tab键实现焦点转移的方法
  • c#多线程更新窗口(winform)GUI的数据
  • .Net WInform开发笔记(二)Winform程序运行结构图及TCP协议在Winform中的应用
  • C# WinForm中禁止改变窗口大小的方法
  • WinForm相对路径的陷阱
  • c# Winform 全窗口拖动的代码
  • 解读在C#中winform程序响应键盘事件的详解
  • WinForm下 TextBox只允许输入数字的小例子
  • Winform跨线程操作的简单方法
  • C# WinForm程序完全退出的问题解决
  • C# WinForm窗体编程中处理数字的正确操作方法
  • C# Winform 让整个窗口都可以拖动


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3