标签:
源代码及可执行文件下载地址:http://files.cnblogs.com/rainboy2010/ProgressList.zip
CProgressListCtrl是CListCtrl的扩展类,支持在ListCtrl中显示ProgressCtrl控件。
主要代码如下:
void CProgressListCtrl::OnPaint() { if(m_ProgressColumn>=0) { int Top=GetTopIndex(); int Total=GetItemCount(); int PerPage=GetCountPerPage(); int LastItem=((Top+PerPage)>Total)?Total:Top+PerPage; int Count=(int)m_ProgressList.GetCount(); for(int i=0;i<Count;i++) { CProgressCtrl* pControl=m_ProgressList.GetAt(0); pControl->DestroyWindow(); m_ProgressList.RemoveAt(0); } CRect rcHeader,rcItem; CHeaderCtrl* pHeader=GetHeaderCtrl(); pHeader->GetItemRect(m_ProgressColumn,&rcHeader); for(int i=Top;i<LastItem;i++) { GetItemRect(i,&rcItem,LVIR_LABEL); rcItem.top+=1; rcItem.bottom-=1; rcItem.left+=rcHeader.left; int Width=rcHeader.Width(); rcItem.right=rcItem.left+Width-4; CProgressCtrl* pControl=new CProgressCtrl(); pControl->Create(NULL,rcItem,this,IDC_PROGRESS_LIST+i); CString Data=GetItemText(i,0); int Percent; #ifdef _UNICODE Percent=_wtoi(Data); #else Percent=atoi(Data); #endif pControl->SetPos(Percent); pControl->ShowWindow(SW_SHOWNORMAL); m_ProgressList.Add(pControl); } } CListCtrl::OnPaint(); }
List Control for Support ProgressCtrl
标签:
原文地址:http://www.cnblogs.com/rainboy2010/p/4338410.html