MFC向立天大神放入曲线图控件

大神这个是用您当年写的曲线图控件,我改了横坐标从0到100 为何 当值为零时横坐标轴不显示。
m3_viewGraph.SetGraphyView(0, 1000, 0, 1000, 10, 5, 1);显示曲线的代码
void CGraphView::DrawGraphy(CDC *pDC, CRect rectCoord)
{
CRect rectView;
CRgn rgnTemp, rgnView;
CPen penLine, *pOldPen;
INT_PTR nCount = m_dataGraph.GetCount();
if (nCount == 0)
return;
float dbData;
int nOffsetX, nOffsetY;
int nRangX = abs(int((m_dbEndX - m_dbStartX)*m_dbResolutionX)),
nRangY = abs(int((m_dbEndY - m_dbStartY)*m_dbResolutionY));
int nCoordWith = rectCoord.Width(),
nCoordHeight = rectCoord.Height(),
nOriginX = rectCoord.left - int(m_dbStartX*nCoordWith / nRangX),
nOriginY = rectCoord.bottom + int(m_dbStartY*nCoordHeight / nRangY);
rgnTemp.CreateRectRgnIndirect(rectCoord);
pDC->SelectObject(rgnTemp);
penLine.CreatePen(PS_SOLID, 1, m_clrWave);
pOldPen = pDC->SelectObject(&penLine);
dbData = m_dataGraph.ElementAt(0);
nOffsetY = int(nCoordHeight*dbData / nRangY);
pDC->MoveTo(nOriginX, nOriginY - nOffsetY);
for (int i = 1; i<nCount; i++)
{
dbData = m_dataGraph.ElementAt(i);
nOffsetX = int(nCoordWith*(i + 1) / nRangX);
nOffsetY = int(nCoordHeight*dbData / nRangY);
pDC->LineTo(nOriginX + nOffsetX, nOriginY - nOffsetY);
}
pDC->SelectObject(pOldPen);
GetClientRect(rectView);
rgnView.CreateRectRgnIndirect(rectView);
pDC->SelectObject(rgnView);
}
...全文
相关推荐
MFC C++绘制图表 饼图、柱状图、曲线图
MFC根据数据绘制图表,饼图、柱状图、曲线图
[MFC]使用ChartCtrl类绘图
MFC(MicrosoftFoundationClasses)是微软基础类库的简称,是微软公司实现的一个C++类库,主要封装了大部分的windows API函数,vc++是微软公司开发的c/c++的集成开发环境,所谓集成开发环境,就是说利用它可以编辑,编译,调试,而不是使用多种工具轮换操作,灵活性较大。vc也指它的内部编译器,集成开发环境必须有一个编译器内核,例如DevC++其中一个编译器内核就是gcc。...
使用MFC读取txt数据画曲线图
详细介绍使用MFC读取txt数据画曲线图方法,并列举例程代码供参考.关于MFC读取txt数据,并且画曲线图记事本中保存的数据格式如: 11 33 88 28 33 10 56 87 11 20 ... 比如每行5个数据,有很多行。现在想把数据读出来,并且画曲线图到已经创建好的对话框上,希望画出坐标轴和数据点曲线,要这么做
VC MFC 曲线图
全套程序,下载直接可运行。可调曲线速度。以测试过,
VC 波形曲线图控件用法示例.rar
VC 波形曲线图控件用法示例,画波形图的控件应用例子,包括了源码。


