Progress Grafik

defenderH2O

Grünschnabel
hi

ich will in mein project das progressgrafik intregrieren wo es den aktuellen
download anzeigt also nur das prozuentale fortschritt sollte es anzeigen..


habe in mein item Progress vorher schon geaddet:

Code:
	strTemp = m_ExtStr.LoadString( IDS_DL_PROGRESS_ENG + g_unStringLanguageIdOffset );
	InsertColumn(i++,strTemp,LVCFMT_LEFT,170);

Code:
	case 8:// progress asc
		return pListItem1->m_strProgress.CompareNoCase(pListItem2->m_strProgress);
	case 18:// progress	 desc
	    return pListItem2->m_strProgress.CompareNoCase(pListItem1->m_strProgress);

Code:
	strTemp = m_ExtStr.LoadString( IDS_DL_PROGRESS_ENG + g_unStringLanguageIdOffset );
	pColumn.pszText = strTemp.GetBuffer(MAX_PATH);
    SetColumn(nCol++,&pColumn);
	strTemp.ReleaseBuffer();



hier wie es schon aussieht:
http://img97.imageshack.us/img97/6498/bildnm2.png

ja nun habe ich vom emule 24a source den progress genommen...

da ich eben eine farbiges progress wollte aber eben kein part funktion...

und habe es in mein source intregriert..:



Code:
#define DLC_BARUPDATE 512



//*******************************************************************
//  FUNCTION:   -	Progress()
//  RETURNS:    -	
//  PARAMETERS: -	
//  COMMENTS:	-					
//*******************************************************************

void CMuteDownloadListCtrl::DrawFileItem(CDC *dc, int nColumn, LPRECT lpRect, CtrlItem_Struct *lpCtrlItem) {
	if(lpRect->left < lpRect->right) {

		char buffer[200];
		//CPartFile *lpPartFile = (CPartFile*)lpCtrlItem->value;
		switch(nColumn) {



		case 8:		// progress
			{
				lpRect->bottom --;
				lpRect->top ++;
				// added
				int  iWidth = lpRect->right - lpRect->left; 
				int iHeight = lpRect->bottom - lpRect->top;
				if (lpCtrlItem->status == (HBITMAP)NULL)
					VERIFY(lpCtrlItem->status.CreateBitmap(1, 1, 1, 8, NULL)); 
				CDC cdcStatus;
				HGDIOBJ hOldBitmap;
				cdcStatus.CreateCompatibleDC(dc);
				int cx = lpCtrlItem->status.GetBitmapDimension().cx; 
				DWORD dwTicks = GetTickCount();
				if(lpCtrlItem->dwUpdated + DLC_BARUPDATE < dwTicks || cx !=  iWidth || !lpCtrlItem->dwUpdated) {
					lpCtrlItem->status.DeleteObject(); 
					lpCtrlItem->status.CreateCompatibleBitmap(dc,  iWidth, iHeight); 
					lpCtrlItem->status.SetBitmapDimension(iWidth,  iHeight); 
					hOldBitmap = cdcStatus.SelectObject(lpCtrlItem->status); 

					RECT rec_status; 
					rec_status.left = 0; 
					rec_status.top = 0; 
					rec_status.bottom = iHeight; 
					rec_status.right = iWidth; 
					//lpPartFile->DrawStatusBar(&cdcStatus,  &rec_status, theApp.glob_prefs->UseFlatBar()); 

					lpCtrlItem->dwUpdated = dwTicks + (rand() % 128); 
				} else 
					hOldBitmap = cdcStatus.SelectObject(lpCtrlItem->status); 

				dc->BitBlt(lpRect->left, lpRect->top, iWidth, iHeight,  &cdcStatus, 0, 0, SRCCOPY); 
				cdcStatus.SelectObject(hOldBitmap);
				//added end
				lpRect->bottom ++;
				lpRect->top --;
			}
			break;

	
		}
	}
}
in meine .h datei habe diese hier hinzugefügt:
Code:
struct CtrlItem_Struct{

   CtrlItem_Struct* parent;
   DWORD            dwUpdated;
   CBitmap          status;
   ~CtrlItem_Struct() { status.DeleteObject(); }
};

void	DrawFileItem(CDC *dc, int nColumn, LPRECT lpRect, CtrlItem_Struct *lpCtrlItem);

ok nun habe ich eine function die GetState oder Getstatus heist...
da wird eben anhezeigt % ,kibs,time...

ok ich muss nur rausfinden wie GetStatus function mit dem progree anwenden kann?
 
Zuletzt bearbeitet:
Zurück