⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 graphlegend.cpp

📁 利用VC++开发的OCX控件
💻 CPP
字号:
//GraphLegend.cpp - Version 3.0 (Brian Convery, May, 2001)

#include "stdafx.h"
#include "GraphLegend.h"
#include "GraphLegendSet.h"

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

/////////////////////////////////////////////////////////////////////////////
// CGraphLegend

CGraphLegend::CGraphLegend()
{
	legendLabels = new CObList();
	legendLength = 0;

}

CGraphLegend::~CGraphLegend()
{
	POSITION pos;
	CGraphLegendSet *legendSet;
	pos = legendLabels->GetHeadPosition();
	while(pos != NULL)
	{
		legendSet = (CGraphLegendSet*)legendLabels->GetAt(pos);
		//legendLabels->RemoveAt(pos);
		delete legendSet;
		legendLabels->GetNext(pos);
	}

	legendLabels->RemoveAll();
	delete legendLabels;
}


BEGIN_MESSAGE_MAP(CGraphLegend, CStatic)
	//{{AFX_MSG_MAP(CGraphLegend)
		// NOTE - the ClassWizard will add and remove mapping macros here.
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CGraphLegend message handlers

void CGraphLegend::SetLegendText(int datagroup, CString label)
{
	CGraphLegendSet *legendData = new CGraphLegendSet();
	legendData->SetLegendLabel(datagroup, label);
	legendLabels->AddTail(legendData);
	if(label.GetLength() > legendLength)
		legendLength = label.GetLength();
}

CString CGraphLegend::GetLegendText(int datagroup)
{
	POSITION pos;
	CGraphLegendSet *legendData;
	if((legendLabels->GetCount() < datagroup) || (legendLabels->GetCount() == 0))
		return "";
	pos = legendLabels->GetHeadPosition();
	for(int i = 0; i < datagroup; i++)
		legendLabels->GetNext(pos);
	legendData = (CGraphLegendSet*)legendLabels->GetAt(pos);
	return legendData->GetLegendLabel();
}

int CGraphLegend::GetLegendLength()
{
	return legendLength;
}

void CGraphLegend::Remove(int dataGroup)
{
	POSITION pos;
	CGraphLegendSet *legendSet;
	pos = legendLabels->GetHeadPosition();
	for(int i = 0; i < dataGroup; i++)
	{
		legendSet = (CGraphLegendSet*)legendLabels->GetAt(pos);
		legendLabels->GetNext(pos);
	}
	legendLabels->RemoveAt(pos);
	delete legendSet;
}

void CGraphLegend::RemoveAll()
{
	POSITION pos;
	CGraphLegendSet *legendSet;
	pos = legendLabels->GetHeadPosition();
	while(pos != NULL)
	{
		legendSet = (CGraphLegendSet*)legendLabels->GetAt(pos);
		legendLabels->RemoveAt(pos);
		delete legendSet;
	}
}

⌨️ 快捷键说明

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