硬汉嵌入式论坛

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

[ThreadX全家桶] 请教下,按照guix官方里程里面的 demo_guix_calculator 历程搞了个计算器进制切换后按钮字符不会更新 ?

[复制链接]

732

主题

3866

回帖

6087

积分

论坛元老

自定义头衔

积分
6087
发表于 2020-10-16 11:02:22 | 显示全部楼层 |阅读模式
请教下,我按照里程里面的
C:\Azure_RTOS\GUIX_Studio_6.0\examples\demo_guix_calculator

搞了个 计算器,我自己单独增加了 2进制,16进制,10进制 数据之间的切换,切换按钮 分别使用

radio 按钮 或 pixelmap_button 按钮,貌似在切换时,键盘显示相应的功能键时需要 另外再单独 触摸一下屏幕的任何地方,相应的功能按钮上面显示的
字符才会更新显示,请问这个问题要如何解决啊 ??

每个按钮都设置了一个相同的 _cbWindow_calculator_pixelmap_button_draw 这个函数进行重绘,按道理说只要 触动了 按钮就会进入到这个函数里面来执行吧 ?? 现实是需要单独触摸一次后才会进入到这个里面 ??
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
122007
QQ
发表于 2020-10-16 12:15:14 | 显示全部楼层
这个要专门测试下,后面我试试。
回复

使用道具 举报

732

主题

3866

回帖

6087

积分

论坛元老

自定义头衔

积分
6087
 楼主| 发表于 2020-10-16 12:30:18 | 显示全部楼层
eric2013 发表于 2020-10-16 12:15
这个要专门测试下,后面我试试。

多谢多谢大神啊
回复

使用道具 举报

0

主题

48

回帖

48

积分

新手上路

积分
48
发表于 2020-10-19 10:13:55 | 显示全部楼层
模式切换时,调用gx_system_dirty_mark将需要重画的控件mark成dirty。
回复

使用道具 举报

732

主题

3866

回帖

6087

积分

论坛元老

自定义头衔

积分
6087
 楼主| 发表于 2020-10-19 11:56:39 | 显示全部楼层
Ting 发表于 2020-10-19 10:13
模式切换时,调用gx_system_dirty_mark将需要重画的控件mark成dirty。

多谢多谢啊,我测试看看效果,

这个函数是放在 按钮控件 响应里面调用一下就可以了吗 ?
回复

使用道具 举报

732

主题

3866

回帖

6087

积分

论坛元老

自定义头衔

积分
6087
 楼主| 发表于 2020-10-20 08:41:55 | 显示全部楼层
Ting 发表于 2020-10-19 10:13
模式切换时,调用gx_system_dirty_mark将需要重画的控件mark成dirty。

使用了 gx_system_dirty_mark 这个函数效果 果然不同凡响啊,一炮走红,

灰常感谢感谢啊
回复

使用道具 举报

1

主题

19

回帖

22

积分

新手上路

积分
22
发表于 2026-1-27 18:00:05 | 显示全部楼层
Ting 发表于 2020-10-19 10:13
模式切换时,调用gx_system_dirty_mark将需要重画的控件mark成dirty。

我在刷新icon图标状态时,调用的是这个函数:gx_icon_pixelmap_set(),它里面已经调用了gx_system_dirty_mark()函数,但是还是需要手点击一下屏幕其他部分,ICON图标才会刷新,不然就会显示重叠,是怎么回事,你们有遇到吗?
[C] 纯文本查看 复制代码
UINT  _gx_icon_pixelmap_set(GX_ICON *icon,
                            GX_RESOURCE_ID normal_pixelmap_id,
                            GX_RESOURCE_ID selected_pixelmap_id)
{
    icon -> gx_icon_normal_pixelmap = normal_pixelmap_id;
    icon -> gx_icon_selected_pixelmap = selected_pixelmap_id;

    if (icon -> gx_widget_status & GX_STATUS_VISIBLE)
    {
        _gx_icon_pixelmap_update(icon);

        /* Mark widget area as dirty. */
        _gx_system_dirty_mark((GX_WIDGET *)icon);
    }

    return(GX_SUCCESS);
}
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
122007
QQ
发表于 2026-1-28 10:01:45 | 显示全部楼层
Bruce 发表于 2026-1-27 18:00
我在刷新icon图标状态时,调用的是这个函数:gx_icon_pixelmap_set(),它里面已经调用了gx_system_dirt ...

参考我这个帖子里面的例子,没有这个问题

https://forum.anfulai.cn/forum.p ... &extra=page%3D1
回复

使用道具 举报

1

主题

19

回帖

22

积分

新手上路

积分
22
发表于 2026-1-28 13:50:19 | 显示全部楼层
本帖最后由 Bruce 于 2026-1-28 14:27 编辑
eric2013 发表于 2026-1-28 10:01
参考我这个帖子里面的例子,没有这个问题

https://forum.anfulai.cn/forum.php?mod=viewthread&tid=11 ...

硬汉哥可能理解错我的意思了,我的这是局部icon图标刷新,试了一下,必须得重新再调用一次gx_system_dirty_mark(),进行全局刷新,或者调用这个函数gx_system_dirty_partial_add()进行局部刷新,才没有问题;gx_icon_pixelmap_set()里面自带的这个全局刷新函数貌似没有触发,不知道为啥?硬汉哥有空了研究研究分享一下


D:\Desktop\111222333.png 111.png
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
122007
QQ
发表于 2026-1-30 01:00:28 | 显示全部楼层
Bruce 发表于 2026-1-28 13:50
硬汉哥可能理解错我的意思了,我的这是局部icon图标刷新,试了一下,必须得重新再调用一次gx_system_dirt ...

好的,后面我看下
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-12 17:04 , Processed in 1.955570 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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