zoukankan      html  css  js  c++  java
  • C#透明窗体代码详解

    using System; 
    using System.Collections.Generic;
    using System.Text;
    using System.Runtime.InteropServices;
    
    namespace TransForm  {
        class WinAPI 
        {
            [DllImport("user32.dll")]
            public extern static IntPtr GetDesktopWindow(); 
            [DllImport("user32.dll")]
            public extern static bool SetLayeredWindowAttributes(IntPtr hwnd, uint crKey, byte bAlpha, uint dwFlags);  
            
            public static uint LWA_COLORKEY = 0×00000001;
            public static uint LWA_ALPHA = 0×00000002;
            
            [DllImport("user32.dll")]
            public extern static uint SetWindowLong(IntPtr hwnd,int nIndex, uint dwNewLong);
            
            [DllImport("user32.dll")]
            public extern static uint GetWindowLong(IntPtr hwnd, int nIndex);
            
            public enum WindowStyle : int
            { 
                GWL_EXSTYLE = -20
            }
     
            public enum ExWindowStyle : uint 
            {
                WS_EX_LAYERED = 0×00080000
            }
         }
    }
    
    
    
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    namespace TransForm{  
    
        public partial class Form1 : Form  
        {  
            public Form1(){InitializeComponent();}  
            private void Form1_Load(object sender, EventArgs e)
            {  
                this.SetWindowTransparent(100);
            } 
    
            private void SetWindowTransparent(byte bAlpha)
            {  
                try {
                    WinAPI.SetWindowLong(this.Handle,(int)WinAPI.WindowStyle.GWL_EXSTYLE,WinAPI.GetWindowLong(this.Handle,(int)WinAPI.WindowStyle.GWL_EXSTYLE)|(uint)WinAPI.ExWindowStyle.WS_EX_LAYERED);
                    WinAPI.SetLayeredWindowAttributes(  this.Handle, 0, bAlpha,   WinAPI.LWA_COLORKEY | WinAPI.LWA_ALPHA);  
                }
                catch 
                {
    
                }
            }
    
            protected override CreateParams CreateParams  
            {  
                get {  
                    CreateParams cp = base.CreateParams;
                    cp.Parent = WinAPI.GetDesktopWindow();
                    cp.ExStyle = 0×00000080 | 0×00000008;
                    //WS_EX_TOOLWINDOW | WS_EX_TOPMOST
                    return cp;  
                }  
            }  
        }  
    }  
  • 相关阅读:
    IDEA 翻译插件网络错误
    win10 商店无法访问网络
    java 将中缀表达式转换成后缀表达式(逆波兰表达式)
    队列(Queue)
    单向链表
    Linux学习笔记2--------用户和组
    Linux学习笔记1-----------打包压缩,Vim
    如何修改主机名
    Linux的rpm软件包和yum软件包和wget
    Fiddler抓取电脑,手机https数据
  • 原文地址:https://www.cnblogs.com/rinack/p/4137494.html
Copyright © 2011-2022 走看看