社区
C#
帖子详情
求助!怎么实现窗体四周阴影??
dangyj
2015-01-29 04:41:30
怎么实现winform窗体的四周阴影?不用WPF,就是C# GDI+
如果有,请具体写下源码,谢谢
...全文
602
9
打赏
收藏
求助!怎么实现窗体四周阴影??
怎么实现winform窗体的四周阴影?不用WPF,就是C# GDI+ 如果有,请具体写下源码,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tzjtzj181
2016-11-29
打赏
举报
回复
public partial class Form1 : Form { [DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")] private static extern IntPtr CreateRoundRectRgn ( int nLeftRect, // x-coordinate of upper-left corner int nTopRect, // y-coordinate of upper-left corner int nRightRect, // x-coordinate of lower-right corner int nBottomRect, // y-coordinate of lower-right corner int nWidthEllipse, // height of ellipse int nHeightEllipse // width of ellipse ); [DllImport("dwmapi.dll")] public static extern int DwmExtendFrameIntoClientArea(IntPtr hWnd, ref MARGINS pMarInset); [DllImport("dwmapi.dll")] public static extern int DwmSetWindowAttribute(IntPtr hwnd, int attr, ref int attrValue, int attrSize); [DllImport("dwmapi.dll")] public static extern int DwmIsCompositionEnabled(ref int pfEnabled); private bool m_aeroEnabled; // variables for box shadow private const int CS_DROPSHADOW = 0x00020000; private const int WM_NCPAINT = 0x0085; private const int WM_ACTIVATEAPP = 0x001C; public struct MARGINS // struct for box shadow { public int leftWidth; public int rightWidth; public int topHeight; public int bottomHeight; } private const int WM_NCHITTEST = 0x84; // variables for dragging the form private const int HTCLIENT = 0x1; private const int HTCAPTION = 0x2; protected override CreateParams CreateParams { get { m_aeroEnabled = CheckAeroEnabled(); CreateParams cp = base.CreateParams; if (!m_aeroEnabled) cp.ClassStyle |= CS_DROPSHADOW; return cp; } } private bool CheckAeroEnabled() { if (Environment.OSVersion.Version.Major >= 6) { int enabled = 0; DwmIsCompositionEnabled(ref enabled); return (enabled == 1) ? true : false; } return false; } protected override void WndProc(ref Message m) { switch (m.Msg) { case WM_NCPAINT: // box shadow if (m_aeroEnabled) { var v = 2; DwmSetWindowAttribute(this.Handle, 2, ref v, 4); MARGINS margins = new MARGINS() { bottomHeight = 1, leftWidth = 1, rightWidth = 1, topHeight = 1 }; DwmExtendFrameIntoClientArea(this.Handle, ref margins); } break; default: break; } base.WndProc(ref m); if (m.Msg == WM_NCHITTEST && (int)m.Result == HTCLIENT) // drag the form m.Result = (IntPtr)HTCAPTION; } public Form1() { m_aeroEnabled = false; this.FormBorderStyle = FormBorderStyle.None; InitializeComponent(); } } 已测,无问题
crystal_lz
2015-02-08
打赏
举报
回复
简单一点的话 设置一下窗体的样式就可以了 SetWindowLong函数 把窗体设置成弹出菜单样式就会有一个阴影了 不过那个阴影不怎么好看 好看一点的还是分层窗体吧
fervour
2015-02-07
打赏
举报
回复
win7下面窗体自带就有这样的效果。得在xp系统才能看到效果吧。
dylike
2015-02-07
打赏
举报
回复
做一个透明的阴影层,可用PS等画,保存为PNG,然后用代码设置为窗体透明显示.
DSAPI多功能组件编程应用-PNG成为窗体
mcff
2015-02-01
打赏
举报
回复
在CNBLOG有相关的帖子..我帮楼主转过来..http://www.cnblogs.com/Keep-Silence-/archive/2013/01/09/2852937.html
忘丿殇
2015-01-30
打赏
举报
回复
http://download.csdn.net/detail/key4lock/7251651
你可以看下这个
dangyj
2015-01-30
打赏
举报
回复
bdmh 你给的链接效果是系统自带的那种,也就是只是下方和右边有。我要的是四周都有阴影的。
devmiao
2015-01-29
打赏
举报
回复
用updatelayeredwindow api
bdmh
2015-01-29
打赏
举报
回复
不要总想着是在窗体外面,你就把窗体的边缘当做外面,在窗体边缘绘制一定像素的阴影色,就能模拟出阴影效果
如果是无边框窗体,可以考虑
http://www.cnblogs.com/huangcong/archive/2010/03/26/1697088.html
Python Tkinter
窗体
讲解
Python作为自立门户的语言,除了学习它的基础编程之外,它还提供了
窗体
的学习,这样相对来说,它就完整了,如果大家学习过C#
窗体
实现
或者Java,MFC等等吧,再学习它就会简单的多。当然大家也不用担心,即使没学过,...
mplayer全参数
抗锯齿带
阴影
的漂亮大字幕和键盘控制的可视反馈。 支持的字体包括欧洲语种 ISO8859-1,2 (匈牙利语, 英语, 捷克语等等), 西里尔语和韩语, 可以播放 12 种格式的字幕文件 (MicroDVD, SubRip, OGM, SubViewer...
MPlayer
MPlayer 具有 OSD(屏上显示) 功能显示状态信息, 有 抗锯齿带
阴影
的漂亮大字幕和键盘控制的可视反馈。 支持的字体包括欧洲语种/ ISO8859-1,2 (匈牙利语, 英语, 捷克语等等), 西里尔语和韩语, 可以播放 12 种格式的...
快速学习html、css的经典笔记
... 全写:HyperTextMark-upLanguage 译名:超文本标识语言 简释:一种为普通文件中某些字句加上标示的语言,其目的在于运用标签(tag)使文件达到预期的显示效果。由文字(字母,数字、标点符号)及标签组合而成。...
JavaScript技术
● ·第九讲
实现
更复杂交互_1.htm ...● ·用Javascript
实现
邮箱快速登录_1.htm ...● Img图像拖拽功能的...● Js关于两个页面文字递交的特效,
求助
!_1.htm ● Js关于浏览器状态栏的编程,文字泡沫效果_1.htm ● Js关于页面的...
C#
110,545
社区成员
642,580
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章