硬汉嵌入式论坛

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

[emWin] 关于抗锯齿2D图形绘制问题

[复制链接]

3

主题

5

回帖

14

积分

新手上路

积分
14
发表于 2021-1-9 15:57:28 | 显示全部楼层 |阅读模式
在WM_PAINT下绘制抗锯齿的2D图形是没有问题的,但在其他自定义的ID里面绘制绘制抗锯齿的2D图形时,颜色发生异常,代码如下:
case WM_PAINT://重绘消息
                        UI_DrawLock(UiMainInterfaceParam.LockFlag);
                        UI_DrawOpen(UiMainInterfaceParam.OpenFlag);
                        break;
                                 
case WM_UPDATE_LOCK:
                        hWinOld = WM_SelectWindow(WM_GetClientWindow(pMsg->hWin));
                        UI_DrawLock(UiMainInterfaceParam.LockFlag);
                        WM_SelectWindow(hWinOld);
                        break;

请问各位大佬,是什么问题导致的?


左边是异常的,右边是正常的

左边是异常的,右边是正常的
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2021-1-11 08:26:35 | 显示全部楼层
在消息里面 WM_UPDATE_LOCK再设置一次抗锯齿。

或者发个稍完整的代码,我在模拟上面测测。
回复

使用道具 举报

5

主题

244

回帖

259

积分

高级会员

积分
259
发表于 2021-1-11 09:59:12 | 显示全部楼层
可以试试在绘制抗锯齿图形之前调用GUI_AA_PreserveTrans保存透明度,然后绘制完成之后再调用一次恢复,我有时候遇到抗锯齿效果消失的时候就这么写
回复

使用道具 举报

3

主题

5

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2021-1-12 08:30:12 | 显示全部楼层
这是完整的代码

UI_MainInterface.c

30.52 KB, 下载次数: 1

UI.h

4 KB, 下载次数: 0

回复

使用道具 举报

3

主题

5

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2021-1-12 08:31:32 | 显示全部楼层
eric2013 发表于 2021-1-11 08:26
在消息里面 WM_UPDATE_LOCK再设置一次抗锯齿。

或者发个稍完整的代码,我在模拟上面测测。

默认抗锯齿是3,我在消息WM_UPDATE_LOCK里面重新设置3也不行
回复

使用道具 举报

3

主题

5

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2021-1-12 08:40:20 | 显示全部楼层
DX3906 发表于 2021-1-11 09:59
可以试试在绘制抗锯齿图形之前调用GUI_AA_PreserveTrans保存透明度,然后绘制完成之后再调用一次恢复,我有 ...

按照你的设置,先用GUI_AA_PreserveTrans(1),再绘制抗锯齿图形,再用GUI_RestoreUserAlpha();,结果也不行,后来发现GUI_AA_PreserveTrans(1)返回值是0,这个有没有影响
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-20 01:50 , Processed in 0.226792 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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