仪陇家园分类信息网、仪陇生活网、仪陇家园网

搜索

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

[复制链接]
百搜优 发表于 2022-5-11 14:42:37 | 显示全部楼层 |阅读模式


苦学c/c++和win32, 成功上岸!!!
窗口阴影模块 by a2002
这个模块用于给无边框窗口加上阴影
提供给学习自绘的朋友╰(*°▽°*)╯



[color=]思路

[color=]把原始窗口阴影想象成单色的矩形

[color=]这个矩形经过高斯模糊处理后, 加上偏移即形成阴影

[color=]实际上绘制时与原窗口重叠的部分应该不计算, 这样的话效率还可以



[color=]模块没有用到GDIPlus, 只是创建了一个32位的位图

[color=]实际上也可以用Direct2D硬件加速计算高斯模糊效果

[color=]但考虑到不是所有系统(比如XP, 早期WIN7, Windows安全模式)都支持d2d1_1, 只好作罢

[color=]其实是不会Direct2D(

[color=]用法
在程序创建阴影之前调用 阴影_初始化, 指定阴影类名和实例句柄, 一般填
#DEFAULTSHADOWNAME 和 0 即可

[color=]在程序销毁阴影之后调用 阴影_反初始化, 释放资源是个好习惯

[color=]如果要使用阴影, 有两种方案

[color=]一种是使用 阴影_通知, 自行发送消息创建/销毁/更新窗口, 例子见测试窗口程序集

[color=]另一种使用 阴影_创建/阴影_销毁/阴影_更新 这3个函数, 例子见测试窗口2程序集

            

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

            
            
        

        
               
            引用模块
            
            无

            
            

        
        
            
[db:下载]
回复

使用道具 举报

全部回复0 显示全部楼层

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

楼主

论坛元老

热门推荐

联系客服 关注微信 下载APP 返回顶部 返回列表