急问(关于进度条显示问题) 我用一个进度条来显示算法的运行进度,当问题规模比较小时还能够正常指示,但当问题规模较大而导致算法运行需要耗费较多运算资源时进度条就无法显示了,感觉电脑就死在那似的,请问有什么办法能让进度条在计算机运行比较忙时依然正常指示呢??谢谢!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用多线程或者在首次将进度条 SetPos时 Invalidate invalidate只需要在首次,接下来就都不需要了吗? 多线程,在线程中获取进度,设置一个定时器,定时把进度反应在progressbar上setpos不需要invalidate 在计算过程中加if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) DispatchMessage(&msg);也是一个办法 在计算过程中加if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) DispatchMessage(&msg);也是一个办法请问应该加在什么地方呢???例如while(条件){计算过程} 是不是就直接这么写就行了呢???例如while(条件){if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) DispatchMessage(&msg); 计算过程} if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) DispatchMessage(&msg);虽然这样可以,但是这样会使你的计算变得更缓慢,比如托动窗体或其它什么操作,比较好的是使用线程 while(条件){ if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } 计算过程}或者,计算过程放在另一个线程中来实现。 绘制颜色交替的直线 VC9如何屏蔽状态栏右键菜单的消息~~~很急! 关于程序图标的问题 Static Text如何设字体为粗体?--快来抢分,在线发放! 有关SQL SERVER数据库备份的问题请指教 vc安装的问题 按键消息的问题 CShockwaveFlash播放swf时,不能暂停和恢复播放. 《VC知识库5周年精华珍藏版》 请给出2个文件比较的算法!!!! 如何注册*号为热键? 帮我看看我的CreateProcess是不是有问题
setpos不需要invalidate
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
DispatchMessage(&msg);
也是一个办法
在计算过程中加
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
DispatchMessage(&msg);
也是一个办法请问应该加在什么地方呢???
例如while(条件)
{
计算过程
}
例如while(条件)
{
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
DispatchMessage(&msg);
计算过程
}
DispatchMessage(&msg);虽然这样可以,但是这样会使你的计算变得更缓慢,比如托动窗体或其它什么操作,
比较好的是使用线程
{
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
计算过程
}或者,计算过程放在另一个线程中来实现。