如何实现窗体的阴影环绕效果【已解决】
本帖最后由 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, $CS_DROPSHADOW))
注:对于XP系统,建议先通过SPI_SETDROPSHADOW使能阴影效果(有可能会被用户关闭)。官网有个UDF函数_GuiSetDropShadow,用起来很简单。
想问的是,如何实现阴影环绕效果(下图):
这个效果真的超赞,被我PS难看了。
----------------------------------------
蛋蛋说得对:也许就是用了张羽化的图片,而不是后期处理的。 这个阴影超赞,我想知道。 本帖最后由 netegg 于 2012-10-19 10:07 编辑
记得官站上有一个,找不到了,win7底下的话看看_winapi_dwm*的那几个例子 这个更像是边框羽化 额。。。。这个毛边效果 我也想知道怎么做= =不过右下角的已经很好了,谢楼主分享 回复 4# sliqi
为何从女人头像换成了蝎子头像,是被女人伤了心吗?
{:face (303):} 相当不错学习了 我都不知道阴影能通过API实现的,之前都是用PNG图片来做。 回复 5# netegg
嗯,可能蛋蛋的想法是对的。
也许就是用的羽化的图片。 回复 11# xiehuahere
不是图片本身,api可以办到,不过不知道xp行不行,7里用dwm*那几个函数好像就行了
页:
[1]