zjlon
驱动牛犊
驱动牛犊
  • 注册日期2006-05-04
  • 最后登录2008-06-19
  • 粉丝0
  • 关注0
  • 积分650分
  • 威望79点
  • 贡献值0点
  • 好评度78点
  • 原创分0分
  • 专家分0分
阅读:3650回复:5

关于对MFC中进度条process的疑问,请高手帮忙

楼主#
更多 发布于:2007-03-20 22:13
  最近在一个程序中,加入进度条,并用setpos()来设定进度条的的位置。但发现在程序执行的过程中,不能显示setpos()设定的的进度条位置,程序执行完,进度条一下就跑到最后。而如果在程序中加入MessageBox()后,在弹出消息框后就能显示setpos()设定的进度条位置,不知道是什么原因,有高手知道吗?请不吝赐教,谢谢!
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
沙发#
发布于:2007-03-20 23:32
刷新......
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
zjlon
驱动牛犊
驱动牛犊
  • 注册日期2006-05-04
  • 最后登录2008-06-19
  • 粉丝0
  • 关注0
  • 积分650分
  • 威望79点
  • 贡献值0点
  • 好评度78点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-03-22 20:44
谢谢。是用什么刷新啊?用输出 变量- >控制项 吗,感觉也没什么效果,不知道怎么回事
ytwei
驱动小牛
驱动小牛
  • 注册日期2005-04-01
  • 最后登录2010-07-30
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望102点
  • 贡献值0点
  • 好评度85点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-03-23 22:54
问题很可能是因为:你的主窗口的消息响应也是在主线程里啊,如果在当前主线程内做连续的SetPos,等你做完最后一次SetPos,主线程才能有更新进度条的权限。如果想要验证的话,你开个TIMER,每次定时器到就SetPos一次,看看效果如何。建议你如果在一个函数内部做连续的SetPos,你还是开个线程调这个函数吧。
zjlon
驱动牛犊
驱动牛犊
  • 注册日期2006-05-04
  • 最后登录2008-06-19
  • 粉丝0
  • 关注0
  • 积分650分
  • 威望79点
  • 贡献值0点
  • 好评度78点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-03-24 09:15
谢谢ytwei,可能确实是这个原因,但我用setpos()并不是相等时间间隔啊,而且不知道为加了MessageBox在弹出消息框后,就能显示当前setpos()进度的位置了。我再试试看吧
dzyssssss
驱动牛犊
驱动牛犊
  • 注册日期2006-07-10
  • 最后登录2010-04-08
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望128点
  • 贡献值0点
  • 好评度74点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-04-04 13:35
开个线程就没有这个问题了
 
游客

返回顶部