To jiangsheng(蒋晟)
在我的类中,读100M的数据文件处理,如何把数据处理进度返回给用户?
在我的类中,读100M的数据文件处理,如何把数据处理进度返回给用户?
解决方案 »
- 这行代码怎么解释?
- 关于devintf.h问题
- 数据库连接问题,敬请赐教.
- 帮帮忙,用vc6.0 的Pop-up menu组件,为什么加载的浮动菜单始终是灰色,谢谢
- 求助高手:在对话框中绘图后的刷新问题(WTL)
- 列表框的问题,怎么样才能正确显示?
- 如何在整个WINDOWS操作系统中屏蔽掉F3键 ;))))))))
- 请问如何做出托盘图标闪动的效果,请指教!
- .lrc文件用什么播放器播放?
- 请大家来看看这个串口的问题,读不到数据
- RTTI和虚函数有和关系??《Thinking in c++》中p391中“因为RTTI可以让我们用一个匿名的多态指针来发现类型信息,所以它常常被被初学者滥用,因为它可能在虚函数完成之前就有意义了”这句话到底是何意呀??
- 怎么样才能使线程正常退出?高手请指点!
用户,可以SetTimer() 来检测比例从而来处理progressbar!
2。在构造函数中创建进度条;
3。每次调用完ReadFile,根据读的字节数刷新进度条;
4。析构函数销毁进度条。
5。最好在类中另外启动一个线程完成这些事,避免主窗口失去响应。
CClass::Function()
{
for()
{
m_pProgressWnd->SetPos();
while(::PeekMessage(&msgNULL,NULL,X_NOREMOVE))
{
::TranslateMessage(msg);
::DispatchMessage(msg);
}
}
}
也可以传递一个static窗口的指针,进度条可以自己画,而且自己画的更好看。:)
下面是一个简单的Static进度条画法(双色进度):
void ShowProgress(int i)//0<=i<=100
{
CDC* pDC=pWnd->GetDC();
CRect lr,rr,cr;
pWnd->GetClientRect(&cr);
lr=rr=cr;
lr.right=((cr.Width()*i/100);
rr.left=lr.right;CRgn rgnl,rgnr;
rgnl.CreateRectRgnIndirect(lr);
rgnr.CreateRectRgnIndirect(rr);
CBrush* pBrush=CBrush::FromHandle(GetSysColorBrush(COLOR_HIGHLIGHT));
pDC->FillRect(&lr,pBrush);
CString str;
str.Format("%d",i);
str+="%";
pDC->SelectClipRgn(&rgnl);
pDC->SetTextColor(::GetSysColor(COLOR_HIGHLIGHTTEXT));
pDC->SetBkColor(GetSysColor(COLOR_HIGHLIGHT));
pDC->DrawText(str,cr,DT_VCENTER|DT_CENTER|DT_SINGLELINE);
pDC->SelectClipRgn(&rgnr);
pDC->SetTextColor(GetSysColor(COLOR_BTNTEXT));
pDC->SetBkColor(GetSysColor(COLOR_HIGHLIGHTTEXT));
pDC->DrawText(str,cr,DT_VCENTER|DT_CENTER|DT_SINGLELINE);pWnd->ReleaseDC(pDC);
}