硬汉嵌入式论坛

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

[emWin] emWin的60期教程第9章中button上面显示流位图问题已经解决

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107470
QQ
发表于 2015-9-30 19:42:24 | 显示全部楼层 |阅读模式
1.png

=================================================
将局部变量
GUI_BITMAP Bitmap;
设置为全局变量就可以解决了,原因是因为退出函数_ShowStreamBitmap后,此变量
空间也被释放掉了,但是button控件还有使用这个变量,所以导致不能够正常显示。
调用函数
BUTTON_SetBitmap(hButton, BUTTON_BI_UNPRESSED, &Bitmap);
可以正常显示。
0.png
回复

使用道具 举报

4

主题

64

回帖

76

积分

初级会员

积分
76
发表于 2015-10-9 17:48:58 | 显示全部楼层
要是流位图放在外置存储器上能正常显示就好了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107470
QQ
 楼主| 发表于 2015-10-9 17:49:56 | 显示全部楼层

回 heitu103 的帖子

heitu103:要是流位图放在外置存储器上能正常显示就好了 (2015-10-09 17:48) 
这个就是放在SD卡上面的dta格式文件,然后加载到动态内存里面了,进行显示。
回复

使用道具 举报

4

主题

64

回帖

76

积分

初级会员

积分
76
发表于 2015-10-10 09:02:00 | 显示全部楼层

回 eric2013 的帖子

eric2013:这个就是放在SD卡上面的dta格式文件,然后加载到动态内存里面了,进行显示。 (2015-10-09 17:49) 
好,谢谢
回复

使用道具 举报

4

主题

64

回帖

76

积分

初级会员

积分
76
发表于 2015-10-10 22:43:59 | 显示全部楼层
BUTTON_SetBitmap();这个函数可以绘制,但是,我看这个函数BUTTON_SetStreamedBitmapEx()才像是绘制流位图的,但却不显示。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107470
QQ
 楼主| 发表于 2015-10-11 10:43:08 | 显示全部楼层

回 heitu103 的帖子

heitu103:BUTTON_SetBitmap();这个函数可以绘制,但是,我看这个函数BUTTON_SetStreamedBitmapEx()才像是绘制流位图的,但却不显示。 (2015-10-10 22:43) 
加载的dta格式文件是流位图,然后做了一下流位图到其它位图形式的转换,这样BUTTON_SetBitmap就可以显示了,

直接使用这个函数BUTTON_SetStreamedBitmapEx()的确是不知道怎么调用。
主要是其中的一个参数const GUI_BITMAP_STREAM * pBitmap 不知道怎么确定。
回复

使用道具 举报

11

主题

103

回帖

31

积分

初级会员

积分
31
发表于 2015-12-9 15:01:46 | 显示全部楼层

回 heitu103 的帖子

heitu103:BUTTON_SetBitmap();这个函数可以绘制,但是,我看这个函数BUTTON_SetStreamedBitmapEx()才像是绘制流位图的,但却不显示。 (2015-10-10 22:43) 
我也发现这种情况~
回复

使用道具 举报

14

主题

37

回帖

79

积分

初级会员

积分
79
发表于 2020-11-17 14:39:28 | 显示全部楼层
设置成全局变量可以在button上显示。但是同时设置两个button,会有一个button显示图片为无或者不正常。而分别单独显示,可以显示正常。目前做的测试是这样的结果。有在同一个界面设置多个button,使用这种方法成功吗?
回复

使用道具 举报

14

主题

37

回帖

79

积分

初级会员

积分
79
发表于 2020-11-17 14:52:18 | 显示全部楼层
测试将GUI_BITMAP Bitmap;设置为全局变量可以正常为一个button上面显示流位图。但是定义多个button,则显示位图为无或者不正常。但单独显示正常
分别测试为:
单独测试:
button_01:      _ShowAngleBinBMP_Flash_button("APP.dta");

button_02:      _ShowBinBMP_Flash_Button("SYS.dta");

放在一起:
_ShowAngleBinBMP_Flash_button("APP.dta");
_ShowBinBMP_Flash_Button("SYS.dta");

以上皆为初始化时显示,也放在过while循环里面,也是不能显示两个或者多个button位图。单独一个button可以显示正常。

硬汉是否测试过此方法创建多个button,显示位图正常?






单独测试button_01

单独测试button_01

单独测试button_02

单独测试button_02

两个button一起创建

两个button一起创建
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107470
QQ
 楼主| 发表于 2020-11-18 11:55:34 | 显示全部楼层
ZMLZML1009 发表于 2020-11-17 14:52
测试将GUI_BITMAP Bitmap;设置为全局变量可以正常为一个button上面显示流位图。但是定义多个button,则显示 ...

GUI_BITMAP Bitmap;等相关的几个变量最好分别定义。一个控件一个。
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2021-8-11 23:46:21 | 显示全部楼层
eric2013 发表于 2020-11-18 11:55
GUI_BITMAP Bitmap;等相关的几个变量最好分别定义。一个控件一个。

GUI_BITMAP Bitmap每个控件定义一个,不知道为什么多个控件共用一个位图的时候,还是实现不了,项目中很多情况需要多个控件共用一个位图。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107470
QQ
 楼主| 发表于 2021-8-12 09:37:43 | 显示全部楼层
lin814329685 发表于 2021-8-11 23:46
GUI_BITMAP Bitmap每个控件定义一个,不知道为什么多个控件共用一个位图的时候,还是实现不了,项目中很 ...

这个要专门测试下,有可以在模拟器上直接运行的代码吗,仅应用部分的代码。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-3 05:48 , Processed in 0.256264 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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