|
// ListCtrlEx.cpp : implementation file
//
#include "stdafx.h"
#include "ListCtrlEx.h"
// CListCtrlEx
IMPLEMENT_DYNAMIC(CListCtrlEx, CListCtrl)
CListCtrlEx::CListCtrlEx() : m_ProgressColumn(0)
{
}
CListCtrlEx::~CListCtrlEx()
{
}
BEGIN_MESSAGE_MAP(CListCtrlEx, CListCtrl)
ON_WM_PAINT()
END_MESSAGE_MAP()
// CListCtrlEx message handlers
void CListCtrlEx::OnPaint()
{
// TODO: Add your message handler code here
// Do not call CListCtrl::OnPaint() for painting messages
int Top=GetTopIndex();
int Total=GetItemCount();
int PerPage=GetCountPerPage();
int LastItem=((Top+PerPage)>Total)?Total:Top+PerPage;
// if the count in the list os nut zero delete all the progress controls and them procede
{
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);
}
}
CHeaderCtrl* pHeader=GetHeaderCtrl();
for(int i=Top;i<LastItem;i++)
{
CRect ColRt;
pHeader->GetItemRect(m_ProgressColumn,&ColRt);
// get the rect
CRect rt;
GetItemRect(i,&rt,LVIR_LABEL);
rt.top+=1;
rt.bottom-=1;
rt.left+=ColRt.left;
int Width=ColRt.Width();
rt.right=rt.left+Width-4;
/*
rt.left=ColRt.left+1;
rt.right=ColRt.right-1;
*/
// create the progress control and set their position
CProgressCtrl* pControl=new CProgressCtrl();
pControl->Create(NULL,rt,this,IDC_PROGRESS_LIST+i);
CString Data=GetItemText(i,0);
int Percent=atoi(Data);
// set the position on the control
pControl->SetPos(Percent);
pControl->ShowWindow(SW_SHOWNORMAL);
// add them to the list
m_ProgressList.Add(pControl);
}
CListCtrl::OnPaint();
}
void CListCtrlEx::InitProgressColumn(int ColNum/*=0*/)
{
m_ProgressColumn=ColNum;
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.
A list of licenses authors might use can be found here
This is just a beginning. I’m yet to decide the distance I have to travel.
I’m a 2nd year B. Tech. Student and I’ve started Visual programming about a year ago. Lets hope I can continue that for the rest of 2 and a half more years.