硬汉嵌入式论坛

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

[emWin] 进度条控件的值不刷新

[复制链接]

4

主题

19

回帖

31

积分

新手上路

积分
31
发表于 2018-8-15 15:07:54 | 显示全部楼层 |阅读模式
在case WM_TIMER里调用PROGBAR_SetValue这个函数,紧接着用PROGBAR_GetValue读取,读回来一直是0,怎么回事,进度条不能更新
回复

使用道具 举报

4

主题

19

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2018-8-15 15:35:57 | 显示全部楼层
用了WM_GetDialogItem这个函数后,可以更新hItem 的值了,但是进度条显示还是不更新
hItem = WM_GetDialogItem(pMsg->hWin,ID_IN_MONONUC_7);
PROGBAR_SetValue(hItem,135);
num = PROGBAR_GetValue(hItem);
WM_Exec();
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2018-8-15 15:40:04 | 显示全部楼层
Joker. 发表于 2018-8-15 15:35
用了WM_GetDialogItem这个函数后,可以更新hItem 的值了,但是进度条显示还是不更新
hItem = WM_GetDialog ...

你想要实现什么功能。

另外把你稍完整的测试代码贴出来,我测测。
回复

使用道具 举报

4

主题

19

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2018-8-15 15:49:09 | 显示全部楼层
eric2013 发表于 2018-8-15 15:40
你想要实现什么功能。

另外把你稍完整的测试代码贴出来,我测测。

就是想每次进入WM_TIMER里都根据当前数值更新进度条长度,我在WM_PAINT里用PROGBAR_CreateEx创建的进度条,在WM_TIMER里用PROGBAR_SetValue更新值,按照这个思路是对的吧?
代码不方便贴呀
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2018-8-16 02:26:04 | 显示全部楼层
Joker. 发表于 2018-8-15 15:49
就是想每次进入WM_TIMER里都根据当前数值更新进度条长度,我在WM_PAINT里用PROGBAR_CreateEx创建的进度条 ...

不可以在WM_PAINT消息里面创建进度条,这个消息会不断进入的。

你应该在初始消息里面创建,如果是对话框,你应该在WM_INIT_DIALOG消息里面创建
回复

使用道具 举报

4

主题

19

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2018-8-16 09:06:38 | 显示全部楼层
eric2013 发表于 2018-8-16 02:26
不可以在WM_PAINT消息里面创建进度条,这个消息会不断进入的。

你应该在初始消息里面创建,如果是对话 ...

是一个窗口,在WM_CREATE消息里创建对吗
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2018-8-16 09:43:42 | 显示全部楼层
Joker. 发表于 2018-8-16 09:06
是一个窗口,在WM_CREATE消息里创建对吗

对,如果是窗口就在WM_CREATE消息里面。
回复

使用道具 举报

4

主题

19

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2018-8-16 14:18:51 | 显示全部楼层
eric2013 发表于 2018-8-16 09:43
对,如果是窗口就在WM_CREATE消息里面。

我在WM_CREATE里创建内存直接耗没了,死机。。。而且放到WM_PAINT里,如果不切换界面的话,就不会再执行这个重绘了呀。我在WM_TIMER里直接用PROGBAR_SetValue给进度条控件设定值,再读回来,值是对的,就是显示不刷新,看手册里说要调用WM_Exec()才会显示,但是我调用后还是没有,这个函数是在PROGBAR_SetValue后直接调用就可以吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2018-8-16 16:22:42 | 显示全部楼层
Joker. 发表于 2018-8-16 14:18
我在WM_CREATE里创建内存直接耗没了,死机。。。而且放到WM_PAINT里,如果不切换界面的话,就不会再执行 ...

这样,是否方便简单在模拟器上做个类似测试,这样方便我给你修改,要不解决问题效率稍低。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-18 05:36 , Processed in 0.357175 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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