硬汉嵌入式论坛

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

[emWin] EMWIN的存储设备问题。。

[复制链接]

52

主题

75

回帖

231

积分

高级会员

积分
231
发表于 2021-1-28 05:54:36 | 显示全部楼层 |阅读模式
首先,GUI_MEMDEV_Create创建了存储设备,然后在里面画好了图片,我希望的是在某个窗口中显示这个图片,也就是利用GUI_MEMDEV_CopyToLCDAt函数,在WM_PAINT消息里调用。发现并不能显示在存储设备里画好的图片,无任何显示,这是为什么呢?如果是在主窗口中是可以的。但在弹出的子窗口中不行。。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2021-1-28 07:42:40 | 显示全部楼层
上模拟上运行的完整测试代码,仅存储设备部分即可。
回复

使用道具 举报

52

主题

75

回帖

231

积分

高级会员

积分
231
 楼主| 发表于 2021-1-28 19:52:26 | 显示全部楼层
GUI_MEMDEV_Handle LoadJPEG_RAM(int s)
{
        GUI_JPEG_INFO JpegInfo;
        GUI_MEMDEV_Handle hMem;
       
        GUI_JPEG_GetInfo(pBaseJPEG[s], BaseSize[s], &JpegInfo);
        hMem = GUI_MEMDEV_Create(0, 0, JpegInfo.XSize, JpegInfo.YSize);
        if(hMem == 0) return NULL;
       
        GUI_MEMDEV_Select(hMem);
        GUI_JPEG_Draw(pBaseJPEG[s], BaseSize[s], 0, 0);
        GUI_MEMDEV_Select(0);
       
        return hMem;
}
pBaseJPEG是已经载入RAM的JPEG文件,还没有解码的。然后:
hMem = LoadJPEG_RAM(0);
最后,在弹开的子窗口的回调函数中:
WM_PAINT:
    GUI_MEMDEV_CopyToLCD(hMem );
break;

就是这样操作的。图片的载入是没问题的,我在桌面显示过,OK的。另外还有一个问题请教硬汉兄:在弹出的子窗口中,如果用了IMAGE控件,并且指定了JPEG文件,在子窗口关闭时,居然会导致父窗口上会有莫名其妙的随机细线出现,这个。。百思不得其解,用的就是你工程里的JPEG解码驱动文件。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2021-1-29 08:07:55 | 显示全部楼层
perfect_co 发表于 2021-1-28 19:52
GUI_MEMDEV_Handle LoadJPEG_RAM(int s)
{
        GUI_JPEG_INFO JpegInfo;

GUI_MEMDEV_CopyToLCD建议用xxxx_WriteAt

别的不清楚了,没遇到过。你可以在模拟器上做个测试效果,我在我们V6上帮你测下,测试代码越简单越好。
回复

使用道具 举报

52

主题

75

回帖

231

积分

高级会员

积分
231
 楼主| 发表于 2021-1-29 10:02:14 | 显示全部楼层
eric2013 发表于 2021-1-29 08:07
GUI_MEMDEV_CopyToLCD建议用xxxx_WriteAt

别的不清楚了,没遇到过。你可以在模拟器上做个测试效果,我 ...

就是我说的那个JPG图片在子窗口显示,子窗口关闭后,在父窗口有可能留有细线条,这个挺头疼,除非让窗口无效重绘。。但应该不需要这样做才对的。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-20 01:36 , Processed in 0.250888 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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