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

📄 cdrawlineview.cpp

📁 经过扩展的CGraph类及示例工程源代码
💻 CPP
字号:
// CDrawLineView.cpp : implementation of the CCDrawLineView class
//

#include "stdafx.h"
#include "CDrawLine.h"

#include "CDrawLineDoc.h"
#include "CDrawLineView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CCDrawLineView

IMPLEMENT_DYNCREATE(CCDrawLineView, CView)

BEGIN_MESSAGE_MAP(CCDrawLineView, CView)
	//{{AFX_MSG_MAP(CCDrawLineView)
	ON_COMMAND(ID_MENURECTANGLE, OnMenurectangle)
	ON_COMMAND(ID_MENUPIE, OnMenupie)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCDrawLineView construction/destruction

CCDrawLineView::CCDrawLineView()
{
	// TODO: add construction code here
   	testGraph=NULL;
	 graphComplete=TRUE;
}

CCDrawLineView::~CCDrawLineView()
{
}

BOOL CCDrawLineView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CCDrawLineView drawing

void CCDrawLineView::OnDraw(CDC* pDC)
{
	CCDrawLineDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	
	if(	graphComplete==TRUE)
	{ 
		if(testGraph !=NULL)
		 {
			 delete testGraph ;
		     testGraph =NULL;
		 }
	testGraph = new CGraph(1,1);
	testGraph->SetGraphTitle("个股行情");//Line Graph

	
	testGraph->SetTickSpace(70);
	testGraph->SetTickRange(300);
	testGraph->SetXAxisAlignment(0);

	testGraph->SetXAxisLabel("时间(:年)");//Games
	testGraph->SetYAxisLabel("股价(单价:元)");//Scores

	//绘图
	
	CGraphSeries::AddLineTitle(0,"东风汽车");
	CGraphSeries::AddLineTitle(1,"兰州黄河");
	CGraphSeries::AddLineTitle(2,"四川长虹");
    
	CGraphSeries* series1 = new CGraphSeries();
	CGraphSeries* series2 = new CGraphSeries();
	CGraphSeries* series3 = new CGraphSeries();
	series1->SetLabel("九八");
	series2->SetLabel("九九");
	series3->SetLabel("二○○○");
	series1->SetData(0, 150);
	series1->SetData(1, 202);
	series1->SetData(2, 230);
	series2->SetData(0, 199);
	series2->SetData(1, 140);
	series2->SetData(2, 279);
	series3->SetData(0, 240);
	series3->SetData(1, 264);
	series3->SetData(2, 230);
	testGraph->AddSeries(series1);
	testGraph->AddSeries(series2);
	testGraph->AddSeries(series3);

	//创建图例
	testGraph->SetLegend(0, "1:东风 ");
	testGraph->SetLegend(1, "2:黄河 ");
	testGraph->SetLegend(2, "3:长虹 ");
		
	}
	testGraph->DrawGraph(pDC);
	

}

/////////////////////////////////////////////////////////////////////////////
// CCDrawLineView diagnostics

#ifdef _DEBUG
void CCDrawLineView::AssertValid() const
{
	CView::AssertValid();
}

void CCDrawLineView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CCDrawLineDoc* CCDrawLineView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CCDrawLineDoc)));
	return (CCDrawLineDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CCDrawLineView message handlers

void CCDrawLineView::OnMenurectangle() 
{
	// TODO: Add your command handler code here
         if(testGraph !=NULL)
		 {
			 delete testGraph ;
		     testGraph =NULL;
		 }
		testGraph = new CGraph(0,1);
	testGraph->SetGraphTitle("直方图");//Bar Chart

	testGraph->SetTickSpace(3000);
	testGraph->SetTickRange(30000);
	testGraph->SetXAxisAlignment(0);

	testGraph->SetXAxisLabel("工程");//Games
	testGraph->SetYAxisLabel("数据");//Scores

	//绘图
	CGraphSeries* series1 = new CGraphSeries();
	CGraphSeries* series2 = new CGraphSeries();
	CGraphSeries* series3 = new CGraphSeries();
	series1->SetLabel("时期1");
	series2->SetLabel("时期2");
	series3->SetLabel("时期3");
	series1->SetData(0, 15000);
	series1->SetData(1, 202000);
	series1->SetData(2, 230000);
	series1->SetData(3, 185000);
	series1->SetData(4, 198000);
	series1->SetData(5, 2340);
	series1->SetData(6, 17000);
	series1->SetData(7, 19000);
	series1->SetData(8, 18800);
	series1->SetData(9, 2090);
	series2->SetData(0, 19900);
	series2->SetData(1, 14000);
	series2->SetData(2, 2790);
	series3->SetData(0, 2040);
	series3->SetData(1, 2210);
	series3->SetData(2, 2080);
	testGraph->AddSeries(series1);
	testGraph->AddSeries(series2);
	testGraph->AddSeries(series3);

	//创建图例
	testGraph->SetLegend(0, "1项目 ");
	testGraph->SetLegend(1, "2项目 ");
	testGraph->SetLegend(2, "3项目 ");
	testGraph->SetLegend(3, "4项目 ");
	testGraph->SetLegend(4, "5项目");
	testGraph->SetLegend(5, "6项目 ");
	testGraph->SetLegend(6, "7项目 ");
	testGraph->SetLegend(7, "8项目 ");
	testGraph->SetLegend(8, "9项目 ");
	testGraph->SetLegend(9, "10项目 ");
	
	graphComplete = !graphComplete;
	Invalidate(TRUE);
	
}

void CCDrawLineView::OnMenupie() 
{
	// TODO: Add your command handler code here
	 if(testGraph !=NULL)
		 {
			 delete testGraph ;
		     testGraph =NULL;
		 }
	{
	// TODO: Add your command handler code here
	testGraph = new CGraph(2);
	testGraph->SetGraphTitle("饼图");//Pie Chart
	
	//创建图例
	testGraph->SetLegend(0, "1项目 ");
	testGraph->SetLegend(1, "2项目 ");
	testGraph->SetLegend(2, "3项目 ");
	testGraph->SetLegend(3, "4项目 ");
	testGraph->SetLegend(4, "5项目 ");
	testGraph->SetLegend(5, "6项目 ");
	testGraph->SetLegend(6, "7项目 ");
	testGraph->SetLegend(7, "8项目 ");
	testGraph->SetLegend(8, "9项目");
	testGraph->SetLegend(9, "10项目 ");

	//绘图
	CGraphSeries* series1 = new CGraphSeries();
	CGraphSeries* series2 = new CGraphSeries();
	CGraphSeries* series3 = new CGraphSeries();
	series1->SetLabel("时期 1");
	series2->SetLabel("时期 2");
	series3->SetLabel("时期 3");
	series1->SetData(0, 15);
	series1->SetData(1, 5);
	series1->SetData(2, 2);
	series1->SetData(3, 8);
	series1->SetData(4, 30);
	series1->SetData(5, 6);
	series1->SetData(6, 7);
	series1->SetData(7, 9);
	series1->SetData(8, 8);
	series1->SetData(9, 10);
	series2->SetData(0, 15);
	series2->SetData(1, 15);
	series2->SetData(2, 15);
	series3->SetData(0, 10);
	series3->SetData(1, 20);
	series3->SetData(2, 30);
	series3->SetData(3, 40);
	series3->SetData(4, 50);

	testGraph->AddSeries(series1);
	testGraph->AddSeries(series2);
	testGraph->AddSeries(series3);

	graphComplete = !graphComplete;
	
	Invalidate(TRUE);	
}
	
}

⌨️ 快捷键说明

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