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;  
                }  
            }  
        }  
    }  
  • 相关阅读:
    A Bug's Life(削弱版食物链)
    The Suspects
    Find The Multiple
    Lake Counting(dfs)
    经典dfs(depth-first search)
    喝啤酒(预防老年痴呆的深度搜索)
    C语言的位运算的优势 !
    Oil Deposits
    Catch That Cow
    HTML 003 元素
  • 原文地址:https://www.cnblogs.com/rinack/p/4137494.html
Copyright © 2011-2022 走看看