zoukankan      html  css  js  c++  java
  • C#使用Windows API实现桌面上的遮罩层(鼠标穿透)

    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实现桌面上的遮罩层(鼠标穿透),希望对你有所帮助。
  • 相关阅读:
    uniapp项目笔记
    JS的基本数据类型symbol
    javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
    const, let, var的区别
    vue中的computed属性
    微星主板多个硬盘启动顺序
    vue中子父组件传值问题
    Vue 中 ref 的使用
    码云ssh免密码登录
    当在iOS下获取scrollTop时可以获取到,在Android下获取scrollTop一直为0的问题
  • 原文地址:https://www.cnblogs.com/sczw-maqing/p/3251709.html
Copyright © 2011-2022 走看看