资源描述:
《vc6中调用 proessentials v5图表组件实现科学图表绘制》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、VC6中调用ProEssentialsv5图表组件实现科学图表绘制1ProEssentialsv5简介:ProEssentialsv5是应用于s、s、ActiveX、VCL和DLL五种界面。它的图表类型很多,包括:一般图表、科学图表、3维图表、极坐标图表、饼状图表,几乎覆盖了所有常见的图表类型。我们可以很方便的调用ProEssentialsv5的函数库,添加绘制图表的功能,并可以对图表进行分析,如:回归,求最大值,拟合曲线等。我们还可以很方便的将图表文件的数据文件进行保存,或者导出我们希望格式的图片,如bmp、jpg、png
2、。注:一般图表与科学图表之间的区别在于,一般图表仅提供一维坐标数据绘图,而另一维坐标数据是等间距的。科学图表提供二维坐标数据,绘制任意的散点数据。2具体应用方法:(1)无论开发的是OCX的应用程序、DLL的应用程序还是VCL的应用程序,首先要做的就是根据开发环境的操作系统类型,拷贝PEGRP32C.DLL到相应的在本地硬盘系统盘中去。如果是目录下;如果是32目录下。PEGRAPHS.HLP文件是可选的(2)工程里面添加头文件Pegrpapi.h。选择需要调用的函数,完成图表的绘制功能。在此简介,ProEssentialsv5
3、函数和变量的命名规则。以PEP_为前缀的变量类型如下:PEP_bBoolean(4bytes)PEP_nInteger(4bytes)PEP_dinatedarrayofcharacters.PEP_fSingle(4bytes)orDouble(8bytes)floatingpoint.PEP_naArrayofInteger(4bytes)PEP_dinatedstrings.PEP_faArrayofSingle(4bytes)orDouble(8bytes)floatingpoint.PEP_structVariou
4、sstructures要用DLL调用来设定获取以上变量类型的值,可以根据以上变量类型的前缀来判断应该:PEP_bPEnset/PEngetPEP_nPEnset/PEngetPEP_dpStyles[3];nTmpStyles[0]=PELT_THINSOLID;nTmpStyles[1]=PELT_DASH;nTmpStyles[2]=PELT_DOT;PEvset(hPE,PEP_naSUBSETLIYPES,nTmpStyles,3);注:以上代码使用的Pevset()函数,也可以使用Pevsetcell()函数来实现
5、线型的设定方法。代码如下:intnTmpStyle;nTmpStyle=PELT_THINSOLID;PEvsetcell(hPE,PEP_naSUBSETLIYPES,0,nTmpStyle);nTmpStyle=PELT_DASH;PEvsetcell(hPE,PEP_naSUBSETLIYPES,1,nTmpStyle);nTmpStyle=PELT_DOT;PEvsetcell(hPE,PEP_naSUBSETLIYPES,2,nTmpStyle);其他设定颜色和点类型的方法与以上方法类似,在此不再赘述。3实现结果:
6、绘制了一个科学图表,带游标和坐标显示功能,以下函数分别实现基本图表功能和游标显示功能。voidCPEViepleSGraph(){RECTrect;GetClientRect(rect)m_hPE=PEcreate(PECONTROL_SGRAPH,AINTITLE,"ExampleData");PEszset(m_hPE,PEP_szSUBTITLE,"");//nosubtitlePEszset(m_hPE,PEP_szYAXISLABEL,"UnitsSold");PEszset(m_hPE,PEP_szXAXISLA
7、BEL,"Month");PEnset(m_hPE,PEP_bFOCALRECT,FALSE);PEnset(m_hPE,PEP_bPREPAREiMAGES,TRUE);PEnset(m_hPE,PEP_bCACHEBMP,TRUE);PEnset(m_hPE,PEP_nPLOTTINGMETHOD,PEGPM_POINTSPLUSSPLINE);PEnset(m_hPE,PEP_nGRIDLINECONTROL,PEGLC_NONE);PEnset(m_hPE,PEP_nALLOING,PEAZ_HORZANDVERT)
8、;PEnset(m_hPE,PEP_nZOOMSTYLE,PEZS_RO2_NOT);//子集的标识PEvsetcell(m_hPE,PEP_szaSUBSETLABELS,0,"Texas");PEvsetcell(m_hPE,PEP_szaSUBSETLABELS,1,"Florida