硬汉嵌入式论坛

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

[emWin] 内存设备使用的时候遇到个奇怪的问题

[复制链接]

26

主题

33

回帖

111

积分

初级会员

积分
111
发表于 2024-10-29 15:49:08 | 显示全部楼层 |阅读模式
本帖最后由 ccc_clive 于 2024-10-29 15:55 编辑


    GUI_RECT rect = rect_channel[ch];
    GUI_MEMDEV_Handle hmdev = GUI_MEMDEV_Create(rect.x0, rect.y0, rect.x1 - rect.x0, rect.y1 - rect.y0);
    GUI_MEMDEV_Select(hmdev);

    GUI_SetBkColor(0xff00FFFF);
    GUI_ClearRectEx(&rect_channel[ch]);

    cb_TEXT_drug(ch, WM_CREATE);
    cb_TEXT_speed(ch, WM_CREATE);
    cb_TEXT_preset(ch, WM_CREATE);
    cb_TEXT_total(ch, WM_CREATE);
    cb_TEXT_mode(ch, WM_CREATE);
    cb_TEXT_time(ch, WM_CREATE);
    cb_TEXT_pressure(ch, WM_CREATE);
    cb_TEXT_syringe(ch, WM_CREATE);

    GUI_MEMDEV_Select(0);
    GUI_MEMDEV_Write(hmdev);

    GUI_MEMDEV_Delete(hmdev);

共有8个需要刷新的,在使用内存设备后,最后一个刷新不出来,为背景色,当前面屏蔽一条时,最后那个就可以显示出来,内存使用打印出来,还有大把的内存空间。
如果不使用内存设备,则可以显示出来的。使用手动多缓冲也能正常显示。就是用内存设备刷新的时候会有问题。
因为整页刷新有点慢,页面内容比较多。所以使用内存设备进行局部刷新。没有使用WM,纯画板的
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116232
QQ
发表于 2024-10-30 11:06:01 | 显示全部楼层
你这个cb_TEXT_里面封装的什么,

可以仅 GUI_SetBkColor(0xff00FFFF);
    GUI_ClearRectEx(&rect_channel[ch]);

看看正常不
回复

使用道具 举报

26

主题

33

回帖

111

积分

初级会员

积分
111
 楼主| 发表于 2024-11-5 17:43:34 | 显示全部楼层
eric2013 发表于 2024-10-30 11:06
你这个cb_TEXT_里面封装的什么,

可以仅 GUI_SetBkColor(0xff00FFFF);

用的纯画板模式,仿照widget方式的一个封装函数根据传入参数进行创建和刷新。我调整了下几个函数位置又可以的了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-11 07:39 , Processed in 0.243452 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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