請問進度條為什么在最外面加了個回圈之后就不走了?是進度條不能重復加載嗎?下面是能加載一次的代碼:
m_progress.SetRange(0, 100);
m_progress.SetPos(0);
m_progress.Invalidate();
int i = 1;
for (; i <= 100; i++)
{
m_progress.SetPos(i);
}
該怎么實作進度條多次重新加載?
uj5u.com熱心網友回復:
m_progress.Invalidate();放 for 中
uj5u.com熱心網友回復:
放那個for回圈里?最外層我沒寫的那個回圈嗎?
m_progress.SetRange(0, 100);
while (1)
{
m_progress.Invalidate();
m_progress.SetPos(0);
int i = 1;
for (; i <= 100; i++)
{
m_progress.SetPos(i);
}
}
不應該是這樣嗎?為什么進度條不動?
uj5u.com熱心網友回復:
m_progress.SetPos(i); 后讀要重繪m_progress.Invalidate();
uj5u.com熱心網友回復:
加一句m_progress.SetPos(i); 后讀要重繪
m_progress.Invalidate();
m_progress.UpdateWindow();// 在 回圈中 沒法 更新 界面 !
uj5u.com熱心網友回復:
我設定進度條一般都是不需要update的。只要設定setpos 位置 進度條自己會更新進度。
uj5u.com熱心網友回復:
回圈的話阻塞了訊息環, 可以RedrawWindow強制更新
for(int i=0; i<=100; i++)
{
pCtrl->SetPos(i);
pCtrl->RedrawWindow();
}
uj5u.com熱心網友回復:
阻塞了。最好是訊息里面處理進度。uj5u.com熱心網友回復:
把你的m_progress.SetPos()操作放到OnTimer()中。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/43668.html
標籤:界面
上一篇:vtk vtkUnstructuredGrid.InsertNextCell;
下一篇:如何獲取M.2硬碟的序列號
