paintercollection.cpp

来自「包含几乎所有的c语言的库函数」· C++ 代码 · 共 102 行

CPP
102
字号
// PainterCollection.cpp: implementation of the PainterCollection class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "PainterUsePattern.h"
#include "PainterCollection.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//=================================================================
//
//=================================================================
PainterCollection::PainterCollection()
{

	m_itemList          = new CTypedPtrList<CObList,CGraphicItem*>;
	
	this->m_currentPosition = 0;
	m_count = 0;
}
//=================================================================
//
//=================================================================
PainterCollection::~PainterCollection()
{
	delete m_itemList;
}
//=================================================================
//在子链表中添加新的子结点
//=================================================================
void PainterCollection::Add( CGraphicItem* newItem )
{
	m_count++;
	m_itemList->AddTail( newItem );
}
//=================================================================
//删除选中结点
//=================================================================
void PainterCollection::RemoveAt( int index )
{
	m_itemList->RemoveAt( m_itemList->FindIndex(index) );		
	m_count--;
}
//=================================================================
//取得子链表中第一个子结点指针
//=================================================================
CGraphicItem* PainterCollection::GetFirstItem()
{
   	this->m_currentPosition=0;
	if( !IsDone() )
    	return   m_itemList->GetHead();
	else
		return NULL;

}
//=================================================================
//取得子链表中当前结点的下一个结点指针
//=================================================================
CGraphicItem* PainterCollection::GetNextItem()
{
	POSITION  position;

	m_currentPosition++;
	
	if( !IsDone() ) 
	{
    	position = m_itemList->FindIndex( m_currentPosition );
    	return m_itemList->GetAt(position);
	}
	else
		return NULL;

}
//=================================================================
//判断遍历子链表是否结束
//=================================================================
int PainterCollection::IsDone()
{

	if( m_currentPosition >= m_itemList->GetCount() )
		return 1;
	else
		return 0;

}
//=================================================================
//取得指定位置的图形元素;
//=================================================================
CGraphicItem* PainterCollection::GetAt( int index )
{
	if( index <= m_count )
	{
		return m_itemList->GetAt( m_itemList->FindIndex( index-1 ) );
	}
	else
		return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?