硬汉嵌入式论坛

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

[emWin] 颜色问题

[复制链接]

7

主题

22

回帖

43

积分

新手上路

积分
43
发表于 2018-5-4 13:44:09 | 显示全部楼层 |阅读模式


#define GUI_USE_ARGB        (1)   //使用ARGB格式

GUI_SetFont(&GUI_Font16_ASCII);
GUI_SetColor(GUI_MAKE_COLOR(GUI_RED));



文本显示的颜色居然是蓝色,说明颜色格式还是BGR格式的,emwin版本5.46
但预定义的GUI_RED确实是ARGB格式的  #define GUI_RED           0xFFFF0000  
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-5-4 13:50:17 | 显示全部楼层
这个宏定义是配合ARGB格式的emWin库使用的。你用的这个MDK安装目录里面的emWin库仅支持ABGR格式。

你这里设置此宏定义仅仅是修改了下GUI_RED等宏定义的数值。

详情看此专题教程:https://forum.anfulai.cn/forum.p ... &extra=page%3D1
回复

使用道具 举报

7

主题

22

回帖

43

积分

新手上路

积分
43
 楼主| 发表于 2018-5-4 22:28:54 | 显示全部楼层
ICONVIEW_SetBkColor(hWinICON, ICONVIEW_CI_SEL, GUI_WHITE & (~0x80000000));  //我想要设置图标为透明的,用的ARGB格式,是直接改这句话吗?
回复

使用道具 举报

7

主题

22

回帖

43

积分

新手上路

积分
43
 楼主| 发表于 2018-5-5 00:05:28 | 显示全部楼层
GUI_EndDialog(hWin, 0);                请问一下这里的参数1 和 0  分别代表什么意思, 文档的解释没看懂
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-5-5 02:31:28 | 显示全部楼层
Sincere_sZ08C 发表于 2018-5-4 22:28
ICONVIEW_SetBkColor(hWinICON, ICONVIEW_CI_SEL, GUI_WHITE & (~0x80000000));  //我想要设置图标为透明的 ...

高八位是设置透明的,即alpha通道。你的是ABGR格式库,就调用ICONVIEW_SetBkColor(hIcon, ICONVIEW_CI_SEL, GUI_WHITE | 0x80000000);即可。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-5-5 02:32:57 | 显示全部楼层
Sincere_sZ08C 发表于 2018-5-5 00:05
GUI_EndDialog(hWin, 0);                请问一下这里的参数1 和 0  分别代表什么意思, 文档的解释没看懂

QQ截图20180505023020.png
回复

使用道具 举报

7

主题

22

回帖

43

积分

新手上路

积分
43
 楼主| 发表于 2018-5-5 08:34:42 | 显示全部楼层
eric2013 发表于 2018-5-5 02:31
高八位是设置透明的,即alpha通道。你的是ABGR格式库,就调用ICONVIEW_SetBkColor(hIcon, ICONVIEW_CI_SE ...

我的是ARGB库
回复

使用道具 举报

7

主题

22

回帖

43

积分

新手上路

积分
43
 楼主| 发表于 2018-5-5 10:16:07 | 显示全部楼层

/* 建立一个ICONVIEW作为主界面 */
    IconviewWin = ICONVIEW_CreateEx(ICONVIEW_LBorder, ICONVIEW_TBorder, /* 左上角坐标 */
        ICONVIEW_Width, ICONVIEW_Height,                                /* 小工具的水平和垂直尺寸 */
        WM_HBKWIN,                          /* 父窗口为背景窗口 */
        WM_CF_SHOW | WM_CF_HASTRANS,
        ICONVIEW_CF_AUTOSCROLLBAR_V,        /* 自动增加垂直滚动条 */
        ID_ICONVIEW_0,                      /* 小工具ID */
        ICON_Width,                         /* 图标的水平尺寸为64 */
        ICON_Height);                       /* 图标的垂直尺寸为64 */
    ICONVIEW_SetFont(IconviewWin, &XBF_Font16);
//   ICONVIEW_SetBkColor(IconviewWin, ICONVIEW_CI_SEL, GUI_WHITE);
        ICONVIEW_SetBkColor(IconviewWin, ICONVIEW_CI_SEL, GUI_WHITE  | 0x80000000);
    ICONVIEW_SetSpace(IconviewWin, GUI_COORD_X, ICONVIEW_XSpace);
    ICONVIEW_SetSpace(IconviewWin, GUI_COORD_Y, ICONVIEW_YSpace);
    ICONVIEW_SetIconAlign(IconviewWin, ICONVIEW_IA_HCENTER | ICONVIEW_IA_VCENTER);
回复

使用道具 举报

7

主题

22

回帖

43

积分

新手上路

积分
43
 楼主| 发表于 2018-5-5 10:16:59 | 显示全部楼层
Sincere_sZ08C 发表于 2018-5-5 10:16
/* 建立一个ICONVIEW作为主界面 */
    IconviewWin = ICONVIEW_CreateEx(ICONVIEW_LBorder, ICONVIEW_T ...

那个白色是不是聚焦,我在电脑仿真是透明的
回复

使用道具 举报

7

主题

22

回帖

43

积分

新手上路

积分
43
 楼主| 发表于 2018-5-5 15:20:33 | 显示全部楼层
我弄懂了,ICONVIEW_SetBkColor(IconviewWin, ICONVIEW_CI_SEL, GUI_WHITE  | 0x80000000);
GUI_WHITE  | 0x80000000 这个参数格式就是ARGB格式, 不管你选择的是ABGR还是AGRGB格式,我这样理解是对的吗,坛主
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-5-6 11:42:18 | 显示全部楼层
Sincere_sZ08C 发表于 2018-5-5 15:20
我弄懂了,ICONVIEW_SetBkColor(IconviewWin, ICONVIEW_CI_SEL, GUI_WHITE  | 0x80000000);
GUI_WHITE  |  ...

ARGB和ABGR的A是Alpha通道,然后这个通道在不同格式,数值所表示的透明度是反着的。
QQ截图20180506114501.png
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-20 00:16 , Processed in 0.043514 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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