硬汉嵌入式论坛

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

[emWin] 新人刚学STemWin,超喜欢安富莱的讲解,但是我对GUI_MEMDEV_Write不懂

[复制链接]

32

主题

187

回帖

283

积分

高级会员

积分
283
发表于 2016-9-26 15:47:05 | 显示全部楼层 |阅读模式
我在自学自动储存设备这一块知识,感觉这是GUI的精髓啊,我想做一个类似仪表盘的DEMO,只刷新指针,而不刷新背景和其他的地方,我看了官方的仪表例程,有两个地方不懂。就是GUI_MEMDEV_WriteAt和GUI_MEMDEV_Write这两个函数,不明白什么时候才需要用到它,有什么作用。希望管理员帮帮忙
6E0_7RS1PS7JQ}X]R(CZ}8P.png
回复

使用道具 举报

32

主题

187

回帖

283

积分

高级会员

积分
283
 楼主| 发表于 2016-9-26 18:26:04 | 显示全部楼层
[s:152]
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2016-9-27 01:34:51 | 显示全部楼层
这两个函数不是关键,你看的那个例子估计是调用函数GUI_MEMDEV_DrawAuto了,使用这个函数的话,他的绘制是固定的套路
4.png
回复

使用道具 举报

32

主题

187

回帖

283

积分

高级会员

积分
283
 楼主| 发表于 2016-9-27 09:16:57 | 显示全部楼层

回 eric2013 的帖子

eric2013:
这两个函数不是关键,你看的那个例子估计是调用函数GUI_MEMDEV_DrawAuto了,使用这个函数的话,他的绘制是固定的套路
首先,表示很激动,第一次注册账号发帖,管理大大回复我了,好亲民啊[s:147][s:147][s:147],您说得对,我看的官方那个例程里面确实用了GUI_MEMDEV_DrawAuto。就是这个例程 41ZZ2VR)Q5D}]V2J)}AW@9X.png ,他是画的一个汽车速度仪表盘,指针好像是用的GUI_MEMDEV_DrawAuto画的。然后再说说您给我参考的这个例程,绘制不变的地方,您用了GUI_ClearRect这个函数,再贴了一个位图。如果,我先用GUI_ClearRect清除一块矩形区域,然后用画圆函数去画表盘,而不贴图,这样就会出现这样的情况 54457C7A083D95A9BB1199EA257B1668.png ,白色部分应该怎么清除呢,官方例程里面有用到这个函数GUI_MEMDEV_GetDataPtr
回复

使用道具 举报

32

主题

187

回帖

283

积分

高级会员

积分
283
 楼主| 发表于 2016-9-28 10:01:18 | 显示全部楼层
回复

使用道具 举报

32

主题

187

回帖

283

积分

高级会员

积分
283
 楼主| 发表于 2016-9-28 10:05:25 | 显示全部楼层
Param.hScale = GUI_MEMDEV_CreateFixed(0, 0, 221, 221, GUI_MEMDEV_NOTRANS, GUI_MEMDEV_APILIST_8, GUI_COLOR_CONV_M565);
我使用这个函数创建设备,仿真的时候查看Param.hScale的值为0,应该是没有创建成功,是不是移植的时候没有配置好
eric2013:
这两个函数不是关键,你看的那个例子估计是调用函数GUI_MEMDEV_DrawAuto了,使用这个函数的话,他的绘制是固定的套路
首先,表示很激动,第一次注册账号发帖,管理大大回复我了,好亲民啊[s:147][s:147][s:147],您说得对,我看的官方那个例程里面确实用了GUI_MEMDEV_DrawAuto。就是这个例程,他是画的一个汽车速度仪表盘,指针好像是用的GUI_MEMDEV_DrawAuto画的。然后再说说您给我参考的这个例程,绘制不变的地方,您用了GUI_ClearRect这个函数,再贴了一个位图。如果,我先用GUI_ClearRect清除一块矩形区域,然后用画圆函数去画表盘,而不贴图,这样就会出现这样的情况,白色部分应该怎么清除呢,官方例程里面有用到这个函数GUI_MEMDEV_GetDataPtr
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2016-9-28 11:40:36 | 显示全部楼层

回 loliko 的帖子

loliko:Param.hScale = GUI_MEMDEV_CreateFixed(0, 0, 221, 221, GUI_MEMDEV_NOTRANS, GUI_MEMDEV_APILIST_8, GUI_COLOR_CONV_M565);
我使用这个函数创建设备,仿真的时候查看Param.hScale的值为0,应该是没有创建成功,是不是移植的时候没有配置好
首先,表示很激动,第一次注册账号发帖 .. (2016-09-28 10:05) 
调用函数GUI_ClearRect清楚前,使用函数GUI_SetColor设置一下前景色,你的背景色是红色的,你也设置成红色就可以了。
回复

使用道具 举报

32

主题

187

回帖

283

积分

高级会员

积分
283
 楼主| 发表于 2016-9-28 11:46:24 | 显示全部楼层

回 eric2013 的帖子

eric2013:调用函数GUI_ClearRect清楚前,使用函数GUI_SetColor设置一下前景色,你的背景色是红色的,你也设置成红色就可以了。 (2016-09-28 11:40) 
如果背景是Alpha处理的渐变背景呢
回复

使用道具 举报

32

主题

187

回帖

283

积分

高级会员

积分
283
 楼主| 发表于 2016-9-28 11:50:44 | 显示全部楼层

回 eric2013 的帖子

eric2013:调用函数GUI_ClearRect清楚前,使用函数GUI_SetColor设置一下前景色,你的背景色是红色的,你也设置成红色就可以了。 (2016-09-28 11:40) 
或者背景不是单一的颜色,有其他元素的话,GUI_Clear_Rec也会清掉的
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2016-9-28 12:02:07 | 显示全部楼层

回 loliko 的帖子

loliko:或者背景不是单一的颜色,有其他元素的话,GUI_Clear_Rec也会清掉的 (2016-09-28 11:50) 
那就事先把这块区域的显示内容读取出来,以后每次绘制就先显示这块区域,然后显示你的表盘。
回复

使用道具 举报

32

主题

187

回帖

283

积分

高级会员

积分
283
 楼主| 发表于 2016-9-28 12:53:02 | 显示全部楼层

回 eric2013 的帖子

eric2013:那就事先把这块区域的显示内容读取出来,以后每次绘制就先显示这块区域,然后显示你的表盘。 (2016-09-28 12:02) 
GUI_MEMDEV_Write(),应该就是这个函数了,谢谢指点,继续支持安富莱[s:138][s:138][s:138]
回复

使用道具 举报

0

主题

19

回帖

0

积分

新手上路

积分
0
QQ
发表于 2016-10-2 16:21:28 | 显示全部楼层
水友好强[s:152] [s:152] [s:152] [s:152] [s:152] [s:151] [s:151] [s:151] [s:151] [s:151] [s:151]
回复

使用道具 举报

5

主题

109

回帖

124

积分

初级会员

积分
124
发表于 2016-10-5 19:54:23 | 显示全部楼层
感觉emwin的精华的确是MEMDEV,感觉只要内存够大,应该是可以做得出来很漂亮的界面[s:151]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-18 00:00 , Processed in 0.047452 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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