进度条一定要用多线程来设置吗?

PunWinger 2010-11-03 05:48:12
我在弄一个CListCtrl的缩略图的功能,在弄添加缩略图的时候,在每次添加的时候调用pBar->SetPos(i * 100 / nSize)来设置进度条的进度,不过运行的结果却是进度条最多只能达到20%左右的位置,然后就像卡死一样,一点都不动
后来搜索了一下相关问题,尝试改用多线程添加,这次却发现进度条能够正常显示

想问一下各位,究竟是什么回事?
...全文
87 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hzy694358 2010-11-04
  • 打赏
  • 举报
回复
还是放到另一个线程里去吧这样会好点,
定时器也是可以,不过没多线程好
jianuMan 2010-11-03
  • 打赏
  • 举报
回复
还是用定时器把 工作线程不能访问主窗体
Eleven 2010-11-03
  • 打赏
  • 举报
回复
复杂费时的计算操作还是放到工作线程中去做
PunWinger 2010-11-03
  • 打赏
  • 举报
回复
其实,我主要想知道在调用进度条的SetPos的时候是不是向对话框发送了WM_PAINT的消息了?
原本我觉得进度条应该是调用自身的OnPaint来重绘,跟主对话框没关系吧?
wltg2001 2010-11-03
  • 打赏
  • 举报
回复
用定时器也是可以的。
tufaqing 2010-11-03
  • 打赏
  • 举报
回复
主界面只是一个线程,你的代码没有返回,就不会执行后面的代码,包括窗口的消息,也包括WM_PAINT等刷新消息,所以不行。
简单一点的话可以用Timer,在Timer里面设置。这是窗口的一个消息。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧