易语言资源网 - 做最全的易语言资源下载社区
精易论坛授权登录

自绘窗口阴影 , 这应该是最自然的一种阴影了   [复制链接]

    2021-12-29 16:13:47
    模块控件源码
    易语言资源网
    4674 次浏览
    来源链接



苦学c/c++和win32, 成功上岸!!!

窗口阴影模块 by a2002
这个模块用于给无边框窗口加上阴影
提供给学习自绘的朋友╰(*°▽°*)╯


思路
把原始窗口阴影想象成单色的矩形
这个矩形经过高斯模糊处理后, 加上偏移即形成阴影
实际上绘制时与原窗口重叠的部分应该不计算, 这样的话效率还可以



模块没有用到GDIPlus, 只是创建了一个32位的位图
实际上也可以用Direct2D硬件加速计算高斯模糊效果
但考虑到不是所有系统(比如XP, 早期WIN7, Windows安全模式)都支持d2d1_1, 只好作罢
其实是不会Direct2D(

用法
在程序创建阴影之前调用 阴影_初始化, 指定阴影类名和实例句柄, 一般填 #DEFAULTSHADOWNAME 和 0 即可
在程序销毁阴影之后调用 阴影_反初始化, 释放资源是个好习惯
如果要使用阴影, 有两种方案
一种是使用 阴影_通知, 自行发送消息创建/销毁/更新窗口, 例子见测试窗口程序集
另一种使用 阴影_创建/阴影_销毁/阴影_更新 这3个函数, 例子见测试窗口2程序集



点我下载 (已有 381 次下载)

引用模块





引用支持库


源码文件名 支持库文件名 支持库标识
shadow.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325


[错误报告]   上一篇:键盘快速启动1.1(只需敲几下键盘,快速...     下一篇:帐号记录工具源码...