硬汉嵌入式论坛

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

[ThreadX全家桶] 请教下,guix 使用文本控件,有没有哪个函数可以设置文本的背景色 ?

[复制链接]

681

主题

3487

回帖

5555

积分

论坛元老

积分
5555
发表于 2020-10-30 14:06:16 | 显示全部楼层 |阅读模式
本帖最后由 hpdell 于 2020-10-30 15:20 编辑


请教下,guix 使用文本控件,有没有哪个函数可以设置文本的背景色 ?

这个貌似只是可以设置文本显示的颜色,没有找到相关可以设置文本的背景颜色函数  ???
UINT gx_prompt_text_color_set(GX_PROMPT *prompt,
                                       GX_RESOURCE_ID normal_color,
                                       GX_RESOURCE_ID selected_color,
                                       GX_RESOURCE_ID disabled_color);
还有 gx_numeric_prompt_value_set 这个  函数对应的字符颜色与背景色 设置需要使用哪个函数哇  ??

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2020-10-30 15:42:48 | 显示全部楼层
用GUIX Studio设置,设置后,你看它生成的代码,就知道设置方法了。
回复

使用道具 举报

681

主题

3487

回帖

5555

积分

论坛元老

积分
5555
 楼主| 发表于 2020-10-30 15:56:37 | 显示全部楼层
eric2013 发表于 2020-10-30 15:42
用GUIX Studio设置,设置后,你看它生成的代码,就知道设置方法了。

是使用 guix studio 设置的 的框架,但是我没有找到 对应的颜色 设置函数啊

guix 源代码里面 一堆的 转换,看着看着就晕乎了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2020-10-30 16:36:29 | 显示全部楼层
hpdell 发表于 2020-10-30 15:56
是使用 guix studio 设置的 的框架,但是我没有找到 对应的颜色 设置函数啊

guix 源代码里面 一堆的  ...

不是GUIX的源码,是GUIX Studio生成的那部分就行。
回复

使用道具 举报

681

主题

3487

回帖

5555

积分

论坛元老

积分
5555
 楼主| 发表于 2020-10-30 16:48:20 | 显示全部楼层
本帖最后由 hpdell 于 2020-10-30 16:55 编辑
eric2013发表于2020-10-30 16:36
不是GUIX的源码,是GUIX Studio生成的那部分就行。

部分代码

typedef struct GX_STUDIO_WIDGET_STRUCT
{
   GX_CHAR * widget_name;
   USHORT widget_type;
   USHORT widget_id;
   #如果已定义(GX_WIDGET_USER_DATA)
   INT用户数据;
   #endif
   ULONG样式;
   ULONG状态;
   ULONG control_block_size;
   GX_RESOURCE_ID normal_fill_color_id; 这个地方貌似就是背景色的正常定义
   GX_RESOURCE_ID selected_fill_color_id; 这个地方貌似就是背景色的选择定义
   GX_RESOURCE_ID disabled_fill_color_id; 这个地方貌似就是背景色的禁止定义
   UINT(* create_function)(GX_CONST结构GX_STUDIO_WIDGET_STRUCT *,GX_WIDGET *,GX_WIDGET *);
   无效(* draw_function)(GX_WIDGET *);
   UINT(* event_function)(GX_WIDGET *,GX_EVENT *);
   GX_RECTANGLE大小;
   GX_CONST结构体GX_STUDIO_WIDGET_STRUCT * next_widget;
   GX_CONST结构GX_STUDIO_WIDGET_STRUCT * child_widget;
   ULONG control_block_offset;
   GX_CONST无效*属性;
} GX_STUDIO_WIDGET; 这个是大的定义


// ------------------------------------------- -----------------
GX_CONST GX_STUDIO_WIDGET window_main_numeric_37_define =
{
    “ numeric_37”,
    GX_TYPE_NUMERIC_PROMPT,/ *小部件类型* /
    GX_ID_NONE,/ *小部件ID * /
    #如果已定义(GX_WIDGET_USER_DATA)
    0, / *用户数据* /
    #endif
    GX_STYLE_BORDER_NONE | GX_STYLE_TEXT_CENTER,/ *样式标记* /
    0,/ *状态标记* /
    sizeof(GX_NUMERIC_PROMPT),/ *控制块大小* /
    GX_COLOR_ID_NEW_COLOR_484848,/ *正常颜色ID * /这个通常
    看起来像ID_C, / *选择的颜色ID * /这个地方貌似就是背景色的选择定义
    GX_COLOR_ID_NEW_COLOR_484848,/ *禁用的颜色ID * /这个地方貌似就是背景色的禁止定义
    gx_studio_numeric_prompt_create,/ *创建函数* /
    GX_NULL,/ *绘制函数覆盖* /
    GX_NULL,/ *事件函数覆盖* /
    { 753,566,788,581 },/ *小部件尺寸* /
    &window_main_numeric_38_define,/ *下一个小部件定义* /
    GX_NULL,/ *无子小部件* /
    offsetof(WINDOW_MAIN_CONTROL_BLOCK,window_main_numeric_37), / *控制块* /
    (void *)&window_main_numeric_37_properties / *扩展属性* /                     
};



// ----------------------------------

typedef struct
{
    GX_RESOURCE_ID string_id;
    GX_RESOURCE_ID font_id;
    GX_RESOURCE_ID normal_text_color_id; 这几个是显示文本颜色定义id
    GX_RESOURCE_ID selected_text_color_id;
    GX_RESOURCE_ID disabled_text_color_id;
    VOID(* format_func)(GX_NUMERIC_PROMPT *,INT);
    INT numeric_prompt_value;
} GX_NUMERIC_PROMPT_PROPERTIES;




GX_NUMERIC_PROMPT_PROPERTIES window_main_numeric_37_properties =
{
    0,/ *字符串ID * /
    GX_FONT_ID_VERABD_FONT_NUMBER_16,/ *字体ID * /
    GX_COLOR_ID_DISABLED_FILL,/ *普通文本的颜色* /
    GX_COLOR_ID_SLIDER_GROOVE_BOTTOM,/ *选择的文本颜色* /
    GX_COLOR_ID_DISABLED_FILL,/ *禁用文本颜色* /
    GX_NULL,/ *格式函数* /
    0 / *数字提示值* /
};


貌似上面的那些定义,都没有找到对应的函数来赋值或者被调用啊????

貌似显示 prompt 或者是 使用 numeric_prompt 最终都是调用了 _gx_system_dirty_mark 这个函数

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2020-10-30 17:02:49 | 显示全部楼层
背景设置

1.png

字体设置
2.png
回复

使用道具 举报

681

主题

3487

回帖

5555

积分

论坛元老

积分
5555
 楼主| 发表于 2020-10-30 17:22:35 | 显示全部楼层

看来要单独的把它抠出来才行吧 ?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2020-10-30 17:28:02 | 显示全部楼层
hpdell 发表于 2020-10-30 17:22
看来要单独的把它抠出来才行吧 ?

你直接调用这个API就行。
回复

使用道具 举报

681

主题

3487

回帖

5555

积分

论坛元老

积分
5555
 楼主| 发表于 2020-10-31 09:17:49 | 显示全部楼层
eric2013 发表于 2020-10-30 17:28
你直接调用这个API就行。

终于搞定,非常的感谢,多谢多谢啊
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-19 16:49 , Processed in 0.237650 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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