硬汉嵌入式论坛

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

[emWin] 测试发现emWin5.50的RADIO控件背景色无法成功设置,已经启动经典色模式

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107157
QQ
发表于 2019-12-19 01:00:03 | 显示全部楼层 |阅读模式
已经在GUI_Init函数后面启动RADIO_SetDefaultSkinClassic();

在模拟器和板子上无法开启

比如设置个红色背景,完全没效果:


QQ截图20191219005947.png



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107157
QQ
 楼主| 发表于 2019-12-19 01:05:29 | 显示全部楼层
ARGB格式库也要添加这种范围数值才行
QQ截图20191219010521.png
回复

使用道具 举报

76

主题

237

回帖

465

积分

高级会员

积分
465
发表于 2019-12-30 19:01:00 | 显示全部楼层
5.5....已经这么高级了吗?我现在还在用 5.44.....ST的同步更新速度太慢了...怎么才能用上这个5.5?
回复

使用道具 举报

3

主题

17

回帖

26

积分

新手上路

积分
26
发表于 2020-4-4 15:26:41 | 显示全部楼层
radio控件前面那个圆圈怎么改变大小呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107157
QQ
 楼主| 发表于 2020-4-4 15:51:30 | 显示全部楼层
wode112233 发表于 2020-4-4 15:26
radio控件前面那个圆圈怎么改变大小呢?

只能皮肤色修改。
回复

使用道具 举报

2

主题

73

回帖

84

积分

初级会员

积分
84
发表于 2020-4-9 10:19:47 | 显示全部楼层
不能直接设置背景色,但是找到了一种背景修改的方法,在控件的 WM_PAINT 默认绘制之前,直接用背景色填充,如下

  1.         case WM_PAINT:
  2.                 switch (WM_GetId(pMsg->hWin))
  3.                 {
  4.                 case GUI_ID_RADIO0: GUI_SetBkColor(GUI_GRAY_C8); break;
  5.                 case GUI_ID_RADIO1: GUI_SetBkColor(GUI_GRAY_AA); break;
  6.                 case GUI_ID_RADIO2: GUI_SetBkColor(GUI_GRAY_7C); break;
  7.                 case GUI_ID_RADIO3: GUI_SetBkColor(GUI_GRAY_55); break;
  8.                 default:
  9.                         break;
  10.                 }
  11.                
  12.                 GUI_Clear();// 用背景色填充显示区域
  13.                 RADIO_Callback(pMsg);//执行默认的控件绘制
  14.                 break;
复制代码


如此,便可以使用皮肤,也能修改背景色。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107157
QQ
 楼主| 发表于 2020-4-9 10:33:59 | 显示全部楼层
tsetse 发表于 2020-4-9 10:19
不能直接设置背景色,但是找到了一种背景修改的方法,在控件的 WM_PAINT 默认绘制之前,直接用背景色填充, ...

谢谢分享。

二楼的方式可以。ARGB格式本身颜色的最高8位要是ff,即0xFFxxxxxx,实际测试发现不行,最高8位也要是00才正常。
回复

使用道具 举报

2

主题

73

回帖

84

积分

初级会员

积分
84
发表于 2020-4-9 10:52:40 | 显示全部楼层
eric2013 发表于 2020-4-9 10:33
谢谢分享。

二楼的方式可以。ARGB格式本身颜色的最高8位要是ff,即0xFFxxxxxx,实际测试发现不行,最 ...

原来是这样,没有特别注意到二楼,也就是不能用直接定义好的颜色,经过 MAKE_COLOR 转换后就不对了,需要直接写颜色值
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107157
QQ
 楼主| 发表于 2020-4-9 11:37:30 | 显示全部楼层
tsetse 发表于 2020-4-9 10:52
原来是这样,没有特别注意到二楼,也就是不能用直接定义好的颜色,经过 MAKE_COLOR 转换后就不对了,需要 ...

嗯,估计是个bug。
回复

使用道具 举报

3

主题

338

回帖

347

积分

高级会员

积分
347
发表于 2020-4-9 13:32:49 | 显示全部楼层
kokoromi 发表于 2019-12-30 19:01
5.5....已经这么高级了吗?我现在还在用 5.44.....ST的同步更新速度太慢了...怎么才能用上这个5.5?

你用keil自带的呗,已经5.5版本了,目录:
Keil_v5\ARM\PACK\Keil\MDK-Middleware\7.10.0\emWin
回复

使用道具 举报

3

主题

9

回帖

18

积分

新手上路

积分
18
发表于 2020-4-9 14:47:05 | 显示全部楼层
请教6楼的代码:
GUI_SetBkColor(GUI_GRAY_55); break;
GUI_Clear();// 用背景色填充显示区域

先设置背景色,在GUI_Clear()不会导致颜色被清空吗?谢谢
回复

使用道具 举报

2

主题

73

回帖

84

积分

初级会员

积分
84
发表于 2020-4-10 11:01:14 | 显示全部楼层
fogwizard 发表于 2020-4-9 14:47
请教6楼的代码:
GUI_SetBkColor(GUI_GRAY_55); break;
GUI_Clear();// 用背景色填充显示区域

颜色被清空指什么?

看2楼、7楼的说明,可以直接设置背景色的,只是不能用定义好的颜色,需要直接写颜色值。

因为控件的背景色默认是透明色的,所以在控制绘制之前填充的背景色是不会被覆盖的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 19:56 , Processed in 0.193110 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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