C# 无边框窗体边框阴影效果
2013-10-06 15:27
387 查看
通过下面代码在构造函数中调用方法 SetShadow();
即可实现无边框窗体的阴影效果了
需要添加命名空间 using System.Runtime.InteropServices;
View Code
效果图:
源码下载
模拟API自绘阴影源码下载 如上图
即可实现无边框窗体的阴影效果了
需要添加命名空间 using System.Runtime.InteropServices;
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.Drawing; using System.Runtime.InteropServices; namespace MQXS { public class BaseForm:Form { public BaseForm() { Initialize(); } /// <summary> /// /// </summary> /// <param name="e"></param> protected override void OnMouseDown(MouseEventArgs e) { base.OnMouseDown(e); _IsMouseDown = true; _startPoint = Control.MousePosition; _oldLocation = this.Location; } /// <summary> /// /// </summary> /// <param name="e"></param> protected override void OnMouseMove(MouseEventArgs e) { base.OnMouseMove(e); if (!_IsMouseDown) return; Point p=Control.MousePosition; this.Location = new Point(p.X - _startPoint.X + _oldLocation.X, p.Y - _startPoint.Y + _oldLocation.Y); } /// <summary> /// /// </summary> /// <param name="e"></param> protected override void OnMouseUp(MouseEventArgs e) { base.OnMouseUp(e); _IsMouseDown = false; } /// <summary> /// /// </summary> private void Initialize() { this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.StartPosition = FormStartPosition.CenterScreen; this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true); SetClassLong(this.Handle, GCL_STYLE, GetClassLong(this.Handle, GCL_STYLE) | CS_DropSHADOW); //API函数加载,实现窗体边框阴影效果 } private Point _oldLocation; private Point _startPoint; private bool _IsMouseDown; #region 窗体边框阴影效果变量申明 private const int CS_DropSHADOW = 0x20000; private const int GCL_STYLE = (-26); //声明Win32 API [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern int SetClassLong(IntPtr hwnd, int nIndex, int dwNewLong); [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern int GetClassLong(IntPtr hwnd, int nIndex); #endregion } }
View Code
效果图:
源码下载
模拟API自绘阴影源码下载 如上图
相关文章推荐
- C# 边框阴影窗体效果
- C# WinForm无边框窗体设置阴影效果
- C# 边框阴影窗体效果
- C# 无边框窗体边框阴影效果的简单实现
- 黄聪:C# 窗体边框阴影效果
- c# 当窗体设置成无边框后,如何实现拖动效果,简洁实用
- WPF窗体无边框阴影效果-代码
- 在C#中调用系统API使窗体下拥有阴影效果(转)
- 在C#中调用系统API使窗体下拥有阴影效果
- 在C#中调用系统API使窗体下拥有阴影效果(转)
- c# WinForm 边框阴影窗体
- Devexpres下窗体带阴影的边框效果
- C#-WinForm-无边框窗体的移动和阴影-API
- 关于C# WinForm 边框阴影窗体(一)
- c#窗体移动与窗体阴影效果
- duilib创建的窗体添加边框阴影效果
- C#移动无边框窗体的简单方法
- c# form窗体渐隐效果 制作vist窗口淡入淡出效果
- C#透明窗体及按钮的效果浅析
- C# WinForm 关于窗体最大化时的是否全屏效果与是否遮盖任务栏