硬汉嵌入式论坛

 找回密码
 立即注册
查看: 673|回复: 8
收起左侧

[emWin] 想用emWin做一个背景虚化的提示框

[复制链接]

6

主题

52

回帖

70

积分

初级会员

积分
70
发表于 2024-12-4 15:09:56 | 显示全部楼层 |阅读模式
本帖最后由 zouw96 于 2024-12-4 15:09 编辑

单纯做一个提示框比较好做,如果想做一个背景虚化的不知道怎么处理, GUI_MEMDEV_BlurWinBk(hFrameWin, 0, 4);这个函数我在模拟器上测试过可以,但是需要的内存实在是太大了。不知道还有没有好的实现方式。背景变暗,虚化,模糊等类似的效果都行。


微信截图_20241204150933.png
回复

使用道具 举报

3

主题

425

回帖

434

积分

高级会员

积分
434
发表于 2024-12-4 22:01:16 | 显示全部楼层
如果只是变暗而不模糊,还是很省资源的。
回复

使用道具 举报

6

主题

52

回帖

70

积分

初级会员

积分
70
 楼主| 发表于 2024-12-5 08:37:22 | 显示全部楼层
glory 发表于 2024-12-4 22:01
如果只是变暗而不模糊,还是很省资源的。

这个有什么思路吗
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116197
QQ
发表于 2024-12-5 09:55:53 | 显示全部楼层
这种透明效果,没有硬件加速的话,绘制比较慢

Semi transparent dialog--透明对话框的实现
https://www.armbbs.cn/forum.php? ... 5606&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

3

主题

425

回帖

434

积分

高级会员

积分
434
发表于 2024-12-5 11:17:23 | 显示全部楼层
zouw96 发表于 2024-12-5 08:37
这个有什么思路吗

非常简单,弹出的消息框设置为全屏,并设置hastrans标志,在其paint回调里enablealpha,然后用黑色半透明fill背景。消息框里的居中子窗口就是中间的不透明窗口,它没有特别之处。
回复

使用道具 举报

3

主题

425

回帖

434

积分

高级会员

积分
434
发表于 2024-12-5 11:20:12 | 显示全部楼层
如果不模糊化只是变暗,效果还是可以的。我以前在300MHZ的ARM9上这么做,屏幕1024*600,效率也不差。
其实就是变暗的像素多计算一次alpha混色。
回复

使用道具 举报

6

主题

52

回帖

70

积分

初级会员

积分
70
 楼主| 发表于 2024-12-7 21:44:48 | 显示全部楼层
glory 发表于 2024-12-5 11:20
如果不模糊化只是变暗,效果还是可以的。我以前在300MHZ的ARM9上这么做,屏幕1024*600,效率也不差。
其实 ...

这个办法是可以,主要要注意需要自定义回调函数,用创建的回调函数不能混色。
        WM_SetHasTrans(hWin);
        WM_SetCallback(hWin, _cbWindow);

        GUI_SetAlpha((0x50));
        GUI_SetBkColor(GUI_BLACK);
        GUI_Clear();
        GUI_SetAlpha(0);

就是这个方式要显示出这个弹窗大概得3秒钟左右,实在太慢了
回复

使用道具 举报

6

主题

52

回帖

70

积分

初级会员

积分
70
 楼主| 发表于 2024-12-7 21:45:18 | 显示全部楼层
不知道还有没有更好的方式。GUI_SetAlpha这个大面积处理太慢了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116197
QQ
发表于 2024-12-8 09:26:10 | 显示全部楼层
zouw96 发表于 2024-12-7 21:45
不知道还有没有更好的方式。GUI_SetAlpha这个大面积处理太慢了

直接贴图吧,这个最快,你楼主位的模糊化效果图,基本完全不用关心原来的背景是什么样的。直接这个模糊化好的效果做背景图
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-9 21:11 , Processed in 0.312001 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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