WinForm特效之桌面上的遮罩层实现方法
本文实例讲述了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#程序设计的学习有所帮助。
相关推荐
-
c# winform窗口一直置顶显示在桌面最上方或最底层的方法
一. 在最前面: using System.Runtime.InteropServices; 在定义部分引入下面两个函数: [DllImport( "user32 ")] private static extern IntPtr FindWindow(string lpClassName,string lpWindowName); [DllImport( "user32 ")] private static extern IntPtr SetParent(IntPt
-
win7中C#的winForm编程使用savefiledialog不能弹出保存窗体的解决方法
本文实例分析了win7中C#的winForm编程使用savefiledialog不能弹出保存窗体的解决方法.分享给大家供大家参考.具体分析如下: 复制代码 代码如下: public void ResMsg() { while (isRecMsg) { //准备一个数组 准备接收 服务端发来的数据 byte[] msgRec = new byte[1024 * 1024 * 2]; //接收服务端发来的数据,此方法也会阻断当前线程,并返回接收的数据的长度 int recLe
-
c# winform读取xml文件创建菜单的代码
复制代码 代码如下: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using WinformMenu.Helper;using System.Xml; namespace WinformMen
-
C#实现Winform动态添加菜单的方法
本文实例讲述了C#实现Winform动态添加菜单的方法.分享给大家供大家参考.具体分析如下: 最近在做WINFORM开发,一直都在为主界面的点击事件及动态加载菜单苦脑.现在已解决这个问题了,可以实现数据库或都XML等配置完成动态生成菜单及事件加载.代码如下: private void Form1_Load(object sender, EventArgs e) { //添加菜单一 ToolStripMenuItem subItem; subItem = AddContextMenu("入库&qu
-
.net2.0+ Winform项目实现弹出容器层
适用于:.net2.0+ Winform项目 背景: 有时候我们需要开一个简单的窗口来做一些事,例如输入一些东西.点选一个item之类的,可能像这样: 完了返回原窗体并获取刚刚的输入,这样做并没有什么问题,但在几天前我突然产生了一些想法:为什么非得有板有眼的弹出一个窗体给用户呢,是不是可以在按钮附近迅速呈现一个层来做这些事呢,类似快捷菜单那样,用户高兴就在里面做一下该做的事,不高兴就在其它地方点一下它就消失,本来很轻便快捷的操作,DUANG~弹出一个窗体来会不会令用户心里咯噔一下呢,感受层面的事
-
winform树形菜单无限级分类实例
以下实现的是一个树形菜单,每一级对应一类窗口,点击叶子节点时弹出新的窗口: 用递归和委托实现的. 第一部分功能-创建树形菜单 复制代码 代码如下: /// <summary> /// 创建树形菜单 /// </summary> public void AddTree(int ParentID, TreeNode pNode) { // 数据库名字字段 string str
-
WinForm特效之桌面上的遮罩层实现方法
本文实例讲述了WinForm特效之桌面上的遮罩层实现方法,分享给大家供大家参考之用.具体如下: 这个一个窗体特效,可以帮你了解几个windows api函数. 效果:windows桌面上增加一个简单的遮罩层,其中WS_EX_TRANSPARENT 比较重要,它实现了鼠标穿透的功能. 主要功能代码如下: using System; using System.Drawing; using System.Windows.Forms; using System.Runtime.InteropServic
-
在浏览器窗口上添加遮罩层的方法
如何在浏览器窗口上添加一个遮罩层 背景 在web2.0中,页面弹窗是一个很常见的交互方式,这样既可以避免不必要的页面跳转,也可以改进界面的布局和可交互性. 但是,浏览器原生的弹窗函数(alert, confirm, prompt)有着很大的局限性,主要是它们的展现UI一来很不美观,二来也不够灵活,因此,我们经常需要自行定义弹窗函数. 当我们要实现一个模式弹窗时(模式弹窗,即是说出现弹窗时,页面其它地方不可点击),通常的做法是用一个div将整个页面窗口遮挡住. 实现 下面,我们一步步地实现一种较为
-
jQuery遮罩层实现方法实例详解(附遮罩层插件)
本文实例分析了jQuery遮罩层实现方法.分享给大家供大家参考,具体如下: 1 背景半透明遮罩层样式 需要一个黑色(当然也可以其他)背景,且须设置为绝对定位,以下是项目中用到的css样式: /* 半透明的遮罩层 */ #overlay { background: #000; filter: alpha(opacity=50); /* IE的透明度 */ opacity: 0.5; /* 透明度 */ display: none; position: absolute; top: 0px; lef
-
jQuery超简单遮罩层实现方法示例
本文实例讲述了jQuery超简单遮罩层实现方法.分享给大家供大家参考,具体如下: 在开发中,为了避免二次提交,遮罩层的运用越来越普遍 看了很多代码,下面跟大家分享一下我认为最简单的遮罩层实现方式: 1.样式如下设置: CSS代码: <style type="text/css"> .mask { position: absolute; top: 0px; filter: alpha(opacity=60); background-color: #777; z-index: 1
-
Jquery实现遮罩层的方法
本文实例讲述了Jquery实现遮罩层的方法.分享给大家供大家参考.具体如下: 1.假设#main为页面body中的最外层Div标签 2.背景被遮罩后,显示的弹出窗(默认是不显示的,所包含的CSS这里就不贴了): <!-- Status Bar Start --> <div id="warning-dialog" class="status warning center-top no-display"> <p class="cl
-
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
本文实例讲述了jquery实现点击其他区域时隐藏下拉div和遮罩层的方法.分享给大家供大家参考,具体如下: 为了更好的用户体验,在做下拉获取其他有弹出层的时候,当展开下拉时,要做到点击其他区域也能自动隐藏收起下拉和遮罩层,这样的效果用一段js就可以了. 以下图为例的一个下拉菜单为参考: 效果实现源码: $(document).bind('click', function(e) { var e = e || window.event; //浏览器兼容性 var elem = e.target ||
-
js鼠标悬浮出现遮罩层的方法
本文实例讲述了js鼠标悬浮出现遮罩层的方法.分享给大家供大家参考.具体实现方法如下: html页面代码: 复制代码 代码如下: <ul class="site-tag fl"> <li><a data-title="科学" href="#"><i style="background-image: url(images/xiaozhan/main_ojls_1aa60002008
-
JS简单实现点击按钮或文字显示遮罩层的方法
本文实例讲述了JS简单实现点击按钮或文字显示遮罩层的方法.分享给大家供大家参考,具体如下: 运行效果图如下: 完整代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>点击文字弹出一个DIV层窗口代码</title> <meta charset="urf-8"/> &l
-
去除element-ui中Dialog对话框遮罩层方法详解
目录 前言 modal 属性 示例代码: 前言 本文主要介绍了如何去除 element-ui 中 Dialog 对话框遮罩层的方法,并给出了示例代码以及页面效果作为参考. modal 属性 在使用element-ui的Dialog时,默认会有遮罩层,想要去除遮罩层,官方文档给出了 modal 属性: modal 是一个布尔值,表示是否需要遮罩层: 然而,将 modal 赋值为 false 时并不生效: 这里官方文档也给出了提示: 当 modal 的值为 false 时,请一定要确保 append
-
vue遮罩层如何阻止滚动
目录 vue遮罩层阻止滚动 vue解决遮罩层滚动方法 vue遮罩层阻止滚动 给vue用fixed定位加一个遮罩层,滚动鼠标滚轮发现下面一层的页面随之滚动,那么如何阻止下层页面滚动? 我这里给遮罩层加一个取消鼠标滚轮默认行为的事件 <div class="popup" @mousewheel="mousewheel"> <div class="cen">弹框内容</div> </div> mou
随机推荐
- Laravel框架数据库CURD操作、连贯操作总结
- Docker Swarm入门实例详解
- docker中修改镜像容器的存放目录的方法
- Linux上的文件搜索命令实例详解
- JavaScript框架编程第1/2页
- 详解Vue的computed(计算属性)使用实例之TodoList
- asp.net下获取Excel所有的工作表名称
- Zend 输出产生XML解析错误
- Android应用程序四大组件之使用AIDL如何实现跨进程调用Service
- asp中 select top 问题!~
- jsp实现checkbox的ajax传值实例
- PHP Cookei记录用户历史浏览信息的代码
- JavaScript中省略元素对数组长度的影响
- js实现table添加行tr、删除行tr、清空行tr的简单实例
- python time模块用法实例详解
- jQuery处理图片加载失败的常用方法
- xmlplus组件设计系列之路由(ViewStack)(7)
- JavaScript中的运算符种类及其规则介绍
- 服务器安全问题汇总 让你的服务器更安全
- PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例