硬汉嵌入式论坛

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

[emWin] 为什么设置控件的颜色,却没有变化,比如按钮颜色设置,太多人问了,发帖说明下but

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2016-7-29 10:34:28 | 显示全部楼层 |阅读模式
为什么设置控件的颜色,却没有变化,比如按键颜色,太多人问了,发帖说明下
========================================================
因为从emWin5.28版本开始,默认已经使能了皮肤色,或者说,用户在使用低版本的emWin时,调用了如下的
函对控件使能了皮肤色:

PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
FRAMEWIN_SetDefaultSkin(FRAMEWIN_SKIN_FLEX);
PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX);
CHECKBOX_SetDefaultSkin(CHECKBOX_SKIN_FLEX);
DROPDOWN_SetDefaultSkin(DROPDOWN_SKIN_FLEX);
SCROLLBAR_SetDefaultSkin(SCROLLBAR_SKIN_FLEX);
SLIDER_SetDefaultSkin(SLIDER_SKIN_FLEX);
HEADER_SetDefaultSkin(HEADER_SKIN_FLEX);
RADIO_SetDefaultSkin(RADIO_SKIN_FLEX);
MULTIPAGE_SetDefaultSkin(MULTIPAGE_SKIN_FLEX);
========================================================
这种情况下,用户再调用控件的颜色设置函数是没有用,比如按钮的 BUTTON_SetBkColor
那些颜色设置函数是针对早期的控件颜色模式,即用户要禁止皮肤色,这些颜色设置函数才可以用。
1.  对于emWin5.28及其以上函数就是调用函数BUTTON_SetDefaultSkinClassic(),其余控件类似,都是这种类型的函数,
然后就可以调用函数BUTTON_SetBkColor对按钮颜色进行设置了。


2.  低版本的emWin不调用如下的皮肤色设置函数即可:
PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
FRAMEWIN_SetDefaultSkin(FRAMEWIN_SKIN_FLEX);
PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX);
CHECKBOX_SetDefaultSkin(CHECKBOX_SKIN_FLEX);
DROPDOWN_SetDefaultSkin(DROPDOWN_SKIN_FLEX);
SCROLLBAR_SetDefaultSkin(SCROLLBAR_SKIN_FLEX);
SLIDER_SetDefaultSkin(SLIDER_SKIN_FLEX);
HEADER_SetDefaultSkin(HEADER_SKIN_FLEX);
RADIO_SetDefaultSkin(RADIO_SKIN_FLEX);
MULTIPAGE_SetDefaultSkin(MULTIPAGE_SKIN_FLEX);
回复

使用道具 举报

2

主题

17

回帖

23

积分

新手上路

积分
23
发表于 2016-7-29 23:21:47 | 显示全部楼层
感谢版主!
回复

使用道具 举报

0

主题

3

回帖

0

积分

新手上路

积分
0
发表于 2017-3-2 09:31:51 | 显示全部楼层
默认换肤,BUTTON按钮显示一条条颜色,按下后变成七彩虹色了,不知是移植错误了还是什么问题?功能啥的都正常,就是显示颜色很怪异
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2017-3-2 10:14:32 | 显示全部楼层

回 无帝老三 的帖子

无帝老三:默认换肤,BUTTON按钮显示一条条颜色,按下后变成七彩虹色了,不知是移植错误了还是什么问题?功能啥的都正常,就是显示颜色很怪异 (2017-03-02 09:31) 
估计是底层函数有问题,可以单次测试下那些函数,显示些简单的彩带效果看看,各个颜色是否正常。
回复

使用道具 举报

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
发表于 2018-7-12 16:47:23 | 显示全部楼层
顶贴支持。
Releasing your creativity
回复

使用道具 举报

0

主题

20

回帖

20

积分

新手上路

积分
20
发表于 2019-10-31 10:56:56 | 显示全部楼层
学习了。感谢!!!
回复

使用道具 举报

34

主题

111

回帖

213

积分

高级会员

程序小白

积分
213
QQ
发表于 2021-3-17 12:45:04 | 显示全部楼层
请问 BUTTON_SetDefaultSkinClassic() 这类函数,程序里应该放在哪里调用?  我实验发现必须放在创建对话框函数之前? 如果放在消息里面调用,无效?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2021-3-17 15:31:55 | 显示全部楼层
清风徐来 发表于 2021-3-17 12:45
请问 BUTTON_SetDefaultSkinClassic() 这类函数,程序里应该放在哪里调用?  我实验发现必须放在创建对话框 ...

要在GUI_Init函数后就调用。
回复

使用道具 举报

0

主题

15

回帖

15

积分

新手上路

积分
15
发表于 2023-12-16 16:00:51 | 显示全部楼层
为什么我的emwin5.26 版本只有在 GUI_init() 函数之后调用 BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX); 此函数后,才能进行按钮皮肤的设置,要不然按钮的皮肤设置不会生效
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2023-12-17 09:51:41 | 显示全部楼层
YFS 发表于 2023-12-16 16:00
为什么我的emwin5.26 版本只有在 GUI_init() 函数之后调用 BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX); 此函 ...

是这样的,设置为早期的皮肤色才可以设置。后面的不能通过颜色API修改了。
回复

使用道具 举报

0

主题

15

回帖

15

积分

新手上路

积分
15
发表于 2023-12-21 15:17:57 | 显示全部楼层
eric2013 发表于 2023-12-17 09:51
是这样的,设置为早期的皮肤色才可以设置。后面的不能通过颜色API修改了。

谢谢硬汉哥
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 18:32 , Processed in 0.421562 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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