找回密码
 加入
搜索
查看: 13086|回复: 9

[GUI管理] 如何实现窗体的阴影环绕效果【已解决】

  [复制链接]
发表于 2012-10-18 16:37:45 | 显示全部楼层 |阅读模式
本帖最后由 xiehuahere 于 2012-10-23 09:07 编辑

目前我知道如何实现drop shadow,即阴影出现在偏右下侧(下图):


实现方法为API调用,通过GetClassLong获取窗口原有风格后,再通过SetClassLong加上CS_DROPSHADOW风格。(插一个问题:这里API调用为什么不需要区分Unicode和ANSI?)
Const $GCL_STYLE = -26
Const $CS_DROPSHADOW = 0x20000
Local $result = DllCall("User32.dll", "dword", "GetClassLong", "hwnd", $hGUI, "int", $GCL_STYLE)
DllCall("User32.dll", "dword", "SetClassLong", "hwnd", $hGUI, "int", $GCL_STYLE, "long", BitOR($result[0], $CS_DROPSHADOW))

注:对于XP系统,建议先通过SPI_SETDROPSHADOW使能阴影效果(有可能会被用户关闭)。官网有个UDF函数_GuiSetDropShadow,用起来很简单。
  
想问的是,如何实现阴影环绕效果(下图)

  
这个效果真的超赞,被我PS难看了。

----------------------------------------
蛋蛋说得对:也许就是用了张羽化的图片,而不是后期处理的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-10-18 21:48:12 | 显示全部楼层
这个阴影超赞,我想知道。
发表于 2012-10-19 09:59:14 | 显示全部楼层
本帖最后由 netegg 于 2012-10-19 10:07 编辑

记得官站上有一个,找不到了,win7底下的话看看_winapi_dwm*的那几个例子
发表于 2012-10-20 12:46:33 | 显示全部楼层
这个更像是边框羽化
发表于 2012-10-20 22:02:33 | 显示全部楼层
额。。。。这个毛边效果 我也想知道怎么做= =  不过右下角的已经很好了,谢楼主分享
 楼主| 发表于 2012-10-21 21:08:22 | 显示全部楼层
回复 4# sliqi


为何从女人头像换成了蝎子头像,是被女人伤了心吗?
发表于 2012-10-22 08:41:56 | 显示全部楼层
相当不错学习了
发表于 2012-10-23 08:55:14 | 显示全部楼层
我都不知道阴影能通过API实现的,之前都是用PNG图片来做。
 楼主| 发表于 2012-10-23 09:06:19 | 显示全部楼层
回复 5# netegg

嗯,可能蛋蛋的想法是对的。
也许就是用的羽化的图片。
发表于 2012-10-23 09:33:34 | 显示全部楼层
回复 11# xiehuahere
不是图片本身,api可以办到,不过不知道xp行不行,7里用dwm*那几个函数好像就行了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-28 10:14 , Processed in 0.080317 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表