OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5686|回复: 5

STemwin换上BUTTON_SKIN_FLEX的皮肤后不能更改按钮的背景色求解决?

[复制链接]

7

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2016-10-28
在线时间
13 小时
发表于 2018-3-17 16:02:12 | 显示全部楼层 |阅读模式
1金钱
我原先调用这个函数BUTTON_SetBkColor(hItem, BUTTON_CI_UNPRESSED, GUI_BLACK);BUTTON_SetTextColor(hItem, BUTTON_CI_UNPRESSED, GUI_WHITE);
要让按钮变成黑色,烧到探索者板子后,发现只变了字体颜色,没变背景色,

后来把BUTTON_SKIN_FLEX皮肤取消后就可以变 背景色。

想请问怎样才能用上好看的皮肤又能改变背景色呢?

最佳答案

查看完整内容[请看2#楼]

/*** BUTTON 按钮皮肤自定义***/ BUTTON_SKINFLEX_PROPS Props; //在原基础上修改 BUTTON_GetSkinFlexProps(&Props, BUTTON_SKINFLEX_PI_ENABLED); //原来的皮肤 Props.Radius = 3; //圆角的半径。 Props.aColorUpper[0] = GUI_RED | 0x00EEEEEE; //顶部渐变的顶部颜色。 Props.aColorLower[0] = GUI_RED | 0x00AAAAAA; //顶部渐变的底部颜色。 Props.aColorUpper[ ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

18

主题

323

帖子

1

精华

高级会员

Rank: 4

积分
935
金钱
935
注册时间
2017-12-11
在线时间
196 小时
发表于 2018-3-17 16:02:13 | 显示全部楼层
        /*** BUTTON 按钮皮肤自定义***/
        BUTTON_SKINFLEX_PROPS Props;  //在原基础上修改
        BUTTON_GetSkinFlexProps(&Props, BUTTON_SKINFLEX_PI_ENABLED); //原来的皮肤
        Props.Radius = 3;                                   //圆角的半径。
        Props.aColorUpper[0] = GUI_RED | 0x00EEEEEE;        //顶部渐变的顶部颜色。
        Props.aColorLower[0] = GUI_RED | 0x00AAAAAA;        //顶部渐变的底部颜色。
        Props.aColorUpper[1] = GUI_RED | 0x00AAAAAA;        //底部渐变的顶部颜色。
        Props.aColorLower[1] = GUI_RED | 0x00EEEEEE;        //底部渐变的底部颜色。
//        Props.aColorFrame[0] = GUI_GREEN;                   //周围框架的外部颜色。
//        Props.aColorFrame[1] = GUI_ORANGE | GUI_LIGHTGRAY;  //周围框架的内部颜色。
//        Props.aColorFrame[2] = GUI_ORANGE | GUI_LIGHTGRAY;  //周围框架与内部矩形区域之间的区域颜色。
        BUTTON_SetSkinFlexProps(&Props, BUTTON_SKINFLEX_PI_ENABLED); //更换皮肤
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2018-3-17 16:44:37 | 显示全部楼层
BUTTON_SKIN_FLEX就已经是换肤了,所以没法设置背景色,要想设置很好看的背景就需要自己换肤,写代码
回复

使用道具 举报

7

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2016-10-28
在线时间
13 小时
 楼主| 发表于 2018-3-17 21:03:50 | 显示全部楼层
本帖最后由 绵延的山峰 于 2018-3-17 21:08 编辑
zuozhongkai 发表于 2018-3-17 16:44
BUTTON_SKIN_FLEX就已经是换肤了,所以没法设置背景色,要想设置很好看的背景就需要自己换肤,写代码

照你所说,我想自己换肤写代码。我没写过换肤的。我的思路是先找出源码中换肤代码是怎么写的,沿着BUTTON_SKIN_FLEX按F12找出定义它的函数:
int  BUTTON_DrawSkinFlex         (const WIDGET_ITEM_DRAW_INFO * pDrawItemInfo);
但编译器说is undefined,看不到它怎么实现的。很多底层库函数也是这样查不到,不知道底层库函数的实现,想换肤写不出来。看中文手册和英文指导手册也找不到。
是不是我思路不对,还是学艺不精,还请您能指点一下迷津。


回复

使用道具 举报

18

主题

323

帖子

1

精华

高级会员

Rank: 4

积分
935
金钱
935
注册时间
2017-12-11
在线时间
196 小时
发表于 2018-3-18 11:31:37 | 显示全部楼层
初始化后加上, 就有粉色的3D按钮了 (全部)
回复

使用道具 举报

7

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2016-10-28
在线时间
13 小时
 楼主| 发表于 2018-3-18 14:24:37 | 显示全部楼层
wlq390934605 发表于 2018-3-18 11:31
初始化后加上, 就有粉色的3D按钮了 (全部)

嗯嗯,昨天就有弄过了,但它是全局属性,在这个皮肤上改了背景色,那么所有的按钮的背景色也会跟着改,不能做出有两种不同背景色的按钮。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 03:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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