MFC绘制简单折线图

原创 2012年03月25日 00:33:45
void CMFC_CDCView::OnDraw(CDC* pDC)
{
	CMFC_CDCDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	if (!pDoc)
		return;
	
	CRect rc;
	GetClientRect(rc);
	rc.DeflateRect(50,50);

	int gridXnums = 10;
	int gridYnums = 8;
	int dx = rc.Width() / gridXnums;
	int dy = rc.Height() / gridYnums;
	
	CRect gridRect(rc.left,rc.top,rc.left+dx*gridXnums,rc.top+dy*gridYnums);
	CPen gridPen(PS_SOLID,0,RGB(0,100,200));
	CPen *oldPen = pDC->SelectObject(&gridPen);

	for (int i=0;i<=gridXnums;i++)
	{
		pDC->MoveTo(gridRect.left+i*dx,gridRect.bottom);
		pDC->LineTo(gridRect.left+i*dx,gridRect.top);
	}
	for (int j=0;j<=gridYnums;j++)
	{
		pDC->MoveTo(gridRect.left,gridRect.top+j*dy);
		pDC->LineTo(gridRect.right,gridRect.top+j*dy);
	}

	pDC->SelectObject(oldPen);
	gridPen.Detach();
	gridPen.CreatePen(PS_SOLID,0,RGB(0,0,200));
	pDC->SelectObject(gridPen);

	CBrush gridBrush(RGB(255,0,0));
	CBrush *oldBrush = pDC->SelectObject(&gridBrush);

	POINT ptRect[4] = {{-10,-10},{-10,10},{10,10},{10,-10}};
	POINT ptDraw[4];
	POINT pt[256];

	int data[20] = {18,32,54,34,25,24,36,33,48,56,12,14,37,54,32,45,34,25,34,18};
	int nCount = 20;
	int deta = gridRect.Width() / nCount;

	for (int i=0; i<nCount; i++)
	{
		pt[i].x = gridRect.left + i * deta;
		pt[i].y = gridRect.bottom - (int) (data[i] / 60.0 * gridRect.Height());
		for (int j=0; j<4; j++)
		{
			ptDraw[j].x = ptRect[j].x + pt[i].x;
			ptDraw[j].y = ptRect[j].y + pt[i].y;
		}
		pDC->Polygon(ptDraw,4);
	}
	pDC->Polyline(pt,nCount);
	pDC->SelectObject(oldPen);
	pDC->SelectObject(oldBrush);
	
}


MFC---CMSChart画柱状图或折线图

效果: 安装Teechart步骤省略。 右键窗体,选择“插入 ActiveX 控件”,选择: 头文件:#include "VcPlot.h" #include "VcAxis.h" ...

VS2010 使用TeeChart绘图控件 - 之二 - 绘制图形(折线图,柱状图)

1.前期准备  具体可见VS2010 使用TeeChart绘图控件 - 之一 控件和类的导入 1. 1 添加TeeChart控件,给控件添加变量m_TeeChart   ...

MFC 画折线图线

pControlDC->SelectStockObject(BLACK_BRUSH); //设置画刷 CString str; pControlDC->MoveTo(6,256);//画线的开始位...

VS2010 MFC使用TeeChart绘图控件之二:绘制图形(折线图,柱状图)

【原文】http://blog.csdn.net/czyt1988/article/details/7538979 1.前期准备  具体可见VS2010 使用TeeChar...

MFC中绘制动态曲线

在工控监测领域,经常需要动态绘制曲线,观察曲线的变化趋势,绘制波形图,绘制频谱等。在前面4讲中介绍了MFC经常用的TeeChart控件和Hight-Speed Chart Ctrl,这两个都是MF...

关于在MFC中实用在基于对话框窗口上面绘制折线的实现方法

刚开始的时候一直无法达到想要的效果,后来不断的实验发现是由于坐标的切换不正确导致的,下面详细说明 一般而言我们去GetWindowRect(&rt), 获取到的是相对于显示屏的窗口坐标,但是在move...

如何用MFC画出直线、虚线、折线、圆、椭圆、矩形、弧形(附上源码)

我创建的工程名字是默认的,叫MFCApplication3 首先在MFCApplication3Dlg.h这个文件中添加构造说明: public: CPen m_pen[5]; CPoint ...

TeeChart替代品,MFC下好用的高速绘图控件-(Hight-Speed Charting)

也许这是vc下最好最方便的绘图类,它有TeeChart的绘图和操作风格,不用当心注册破解的问题,因为它是开源的。不用打包注册,因为它是封装成类的,能方便扩展继承。vc6.0到vs2010都能使用,而且...
  • czyt1988
  • czyt1988
  • 2014年01月24日 16:07
  • 37067

MFC画柱状图之High-speed Charting Control(待续)

MFC 柱状图 X64平台 vs2010

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MFC绘制简单折线图
举报原因:
原因补充:

(最多只允许输入30个字)