最新更新 sitemap 网站制作设计本站搜索
网页设计
国外网站 韩国网站 个人主页 手提袋设计 CSS 网页特效 平面设计 网站设计 Flash CMS技巧 服装网站 php教程 photoshop 画册 服务器选用 数据库 Office
虚拟主机 域名注册 云主机 网页设计 客服QQ:8208442
当前位置:首页 > 编程开发 > asp教程

EyesBaby功能实现之Windows前景色调节器

日期:09-26    来源:中国设计秀    作者:cnwebshow.com

其实所谓Windows前景色调节器就是利用Winform窗体遮盖整个Windows区域。主要要求实现窗口透明,且鼠标可以穿过窗体点击其他程序。ud6中国设计秀
ud6中国设计秀
难点就是怎么样让鼠标穿透窗体,代码也是从网上找的,现在找不到原链接了:)ud6中国设计秀
ud6中国设计秀
ud6中国设计秀
ud6中国设计秀
原理就是调用Windows API设置窗口的属性。ud6中国设计秀
ud6中国设计秀
代码:ud6中国设计秀
ud6中国设计秀
代码 ud6中国设计秀
using System;ud6中国设计秀
using System.Collections.Generic;ud6中国设计秀
using System.ComponentModel;ud6中国设计秀
using System.Data;ud6中国设计秀
using System.Drawing;ud6中国设计秀
using System.Text;ud6中国设计秀
using System.Windows.Forms;ud6中国设计秀
using System.Runtime.InteropServices;ud6中国设计秀
ud6中国设计秀
/*ud6中国设计秀
* 作者:Billy Qingud6中国设计秀
* 日期:2009年11月20日ud6中国设计秀
* 说明:EyesBaby Windows 前景窗口。ud6中国设计秀
* 版本:1.0ud6中国设计秀
*/ud6中国设计秀
namespace EyesBabyud6中国设计秀
{ud6中国设计秀
    public partial class WinScreenAdjust : Formud6中国设计秀
    {ud6中国设计秀
        /*ud6中国设计秀
         * 下面这段代码主要用来调用Windows API实现窗体透明(鼠标可以穿透窗体)ud6中国设计秀
         *  也是从网上找的:)ud6中国设计秀
         */ud6中国设计秀
        [DllImport("user32.dll", EntryPoint = "GetWindowLong")]ud6中国设计秀
        public static extern long GetWindowLong(IntPtr hwnd, int nIndex);ud6中国设计秀
        [DllImport("user32.dll", EntryPoint = "SetWindowLong")]ud6中国设计秀
        public static extern long SetWindowLong(IntPtr hwnd, int nIndex, long dwNewLong);ud6中国设计秀
        [DllImport("user32", EntryPoint = "SetLayeredWindowAttributes")]ud6中国设计秀
        PRivate static extern int SetLayeredWindowAttributes(IntPtr Handle, int crKey, byte bAlpha, int dwFlags);ud6中国设计秀
        const int GWL_EXSTYLE = -20;ud6中国设计秀
        const int WS_EX_TRANSPARENT = 0x20;ud6中国设计秀
        const int WS_EX_LAYERED = 0x80000;ud6中国设计秀
        const int LWA_ALPHA = 2; ud6中国设计秀
        public WinScreenAdjust()ud6中国设计秀
        {ud6中国设计秀
            InitializeComponent();ud6中国设计秀
        }ud6中国设计秀
ud6中国设计秀
        private void Form1_Load(object sender, EventArgs e)ud6中国设计秀
        {ud6中国设计秀
            // 取消窗体任务栏ud6中国设计秀
            ShowInTaskbar = false;ud6中国设计秀
            // 窗体位于Windows最顶部ud6中国设计秀
            this.TopMost = true;ud6中国设计秀
            // 去除窗体边框ud6中国设计秀
            this.FormBorderStyle = FormBorderStyle.None;ud6中国设计秀
            // 设置窗体最大化大小(除底部任务栏部分)ud6中国设计秀
            this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);ud6中国设计秀
            // 设置Windows窗口状态为最大化模式ud6中国设计秀
            this.WindowState = FormWindowState.Maximized;ud6中国设计秀
            // 设置Windows属性ud6中国设计秀
            SetWindowLong(this.Handle, GWL_EXSTYLE, GetWindowLong(this.Handle, GWL_EXSTYLE) | WS_EX_TRANSPARENT | WS_EX_LAYERED);ud6中国设计秀
            SetLayeredWindowAttributes(this.Handle, 0, 128, LWA_ALPHA);  ud6中国设计秀
        }ud6中国设计秀
    }ud6中国设计秀
}ud6中国设计秀
ud6中国设计秀
ud6中国设计秀
ud6中国设计秀
ud6中国设计秀
至于EyesBaby中给窗体设置颜色部分就比较简单了。ud6中国设计秀
ud6中国设计秀
代码:ud6中国设计秀
ud6中国设计秀
ud6中国设计秀
ud6中国设计秀
ud6中国设计秀
            // 打开颜色选择对话框 ,并分析是否选择了对话框中的确定按钮 ud6中国设计秀
            if (this.colColorAdjust.ShowDialog() == DialogResult.OK)ud6中国设计秀
            {ud6中国设计秀
                int[] item=colColorAdjust.CustomColors;ud6中国设计秀
                // 将先中的颜色设置为窗体的背景色ud6中国设计秀
                this.winAdjust.BackColor = colColorAdjust.Color;ud6中国设计秀
                // 保存到配置文件ud6中国设计秀
                ConfigHelper.WinForeColor = this.winAdjust.BackColor.Name;ud6中国设计秀
            }ud6中国设计秀
ud6中国设计秀
ud6中国设计秀
ud6中国设计秀
ud6中国设计秀
ud6中国设计秀
ud6中国设计秀
我的第一款实用工具-眼保程序(EyesBaby)ud6中国设计秀
ud6中国设计秀
EyesBaby1.0使用帮助文档 ud6中国设计秀
ud6中国设计秀
ud6中国设计秀
EyesBaby功能实现之窗口拖拽与缩放功能 ud6中国设计秀
ud6中国设计秀
EyesBaby功能实现之图片控件上添加字符 ud6中国设计秀
ud6中国设计秀
ud6中国设计秀
ud6中国设计秀
下载地址:http://files.cnblogs.com/yizhuqing/EyesBabySetup10.zipud6中国设计秀
ud6中国设计秀
 ud6中国设计秀

本文引用地址:/bc/article_46161.html
网站地图 | 关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明