硬汉嵌入式论坛

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

[emWin] 窗口切换卡顿问题

[复制链接]

5

主题

18

回帖

33

积分

新手上路

积分
33
发表于 2019-9-17 10:37:47 | 显示全部楼层 |阅读模式
我用DeleteWindow和CreateWindow来实现窗口的切换,PC上模拟没问题,但移植到触摸屏上很卡。试过用多层也很卡,请问有什么办法吗?
背景图只需要一张,但切换窗口后按钮、文字、计时器都要改变(有六个窗口)。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117619
QQ
发表于 2019-9-17 15:03:42 | 显示全部楼层
提前将背景图绘制到存储设备里面,以后直接调用存储设备的API即可,这样可以大大加速
回复

使用道具 举报

5

主题

18

回帖

33

积分

新手上路

积分
33
 楼主| 发表于 2019-9-19 16:29:45 | 显示全部楼层
eric2013 发表于 2019-9-17 15:03
提前将背景图绘制到存储设备里面,以后直接调用存储设备的API即可,这样可以大大加速

使用了存储设备后,切换界面闪烁得很厉害,刷新好几次才定下来。参考教程这样写的(GUI_MEMDEV_Select(0)添加或删除都不好使):

            case WM_PAINT:
                    GUI_SetBkColor(GUI_WHITE);
                        GUI_Clear();
                        //GUI_DrawBitmap(pBmp[1],0,0);

                  hMem0 = GUI_MEMDEV_CreateEx(0, 0, 480, 272, GUI_MEMDEV_HASTRANS);
                 GUI_MEMDEV_Select(hMem0);
                GUI_DrawBitmap(&bmbm_key_480_272, 0, 0);
               //GUI_MEMDEV_Select(0);
               GUI_MEMDEV_WriteAt(hMem0,0,0);
                GUI_MEMDEV_Delete(hMem0);
回复

使用道具 举报

6

主题

18

回帖

36

积分

新手上路

积分
36
发表于 2019-9-19 16:37:52 | 显示全部楼层
未来通_V8B0f 发表于 2019-9-19 16:29
使用了存储设备后,切换界面闪烁得很厉害,刷新好几次才定下来。参考教程这样写的(GUI_MEMDEV_Select(0) ...

     hMem0 = GUI_MEMDEV_CreateEx(0, 0, 480, 272, GUI_MEMDEV_HASTRANS);
                 GUI_MEMDEV_Select(hMem0);
                GUI_DrawBitmap(&bmbm_key_480_272, 0, 0);
这部分代码不要放在 WM_PAINT 消息中处理
回复

使用道具 举报

5

主题

18

回帖

33

积分

新手上路

积分
33
 楼主| 发表于 2019-9-24 11:02:38 | 显示全部楼层
背影 发表于 2019-9-19 16:37
hMem0 = GUI_MEMDEV_CreateEx(0, 0, 480, 272, GUI_MEMDEV_HASTRANS);
                 GUI_MEMDE ...

请问应该放在哪里呢,我试着放在窗口的构造函数里了,还是不行
回复

使用道具 举报

58

主题

267

回帖

446

积分

高级会员

积分
446
发表于 2019-9-24 11:44:40 | 显示全部楼层
1、看看底层驱动能不能优化,填充和画图函数要单独实现不要用默认的打点函数调用。画图函数要实现一个填充行数据的函数。
2、背景图用一个image控件,尽量不要自己画。
3、显存设置得大点,要比整屏图片所需的空间大。实在不够就排除其他要用的,剩下的都给显存。
4、如果是emWin支持的驱动芯片就尽量用自带的驱动,设置几个参数就行了,一般比自己重新实现底层效率要高。

还不行就是真的硬件资源不够了。
回复

使用道具 举报

5

主题

18

回帖

33

积分

新手上路

积分
33
 楼主| 发表于 2019-9-24 16:08:54 | 显示全部楼层
ihavedone 发表于 2019-9-24 11:44
1、看看底层驱动能不能优化,填充和画图函数要单独实现不要用默认的打点函数调用。画图函数要实现一个填充 ...

尝试了用image控件画背景,但是这样按钮、文本控件都失效了,整个界面只有一张背景图。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-19 03:15 , Processed in 0.045442 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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