ProEssentials第000例SimpleGraph,使用DLL单文档VC6.0实现
来源:互联网 发布:屏幕量角器软件 编辑:程序博客网 时间:2024/06/01 08:51
PE安装不再介绍,看前面的博客。PE下载链接
本例程下载链接
1、新建单文档程序,名称“000SimpleGraph”。
2.、配置库文件目录
当前工程下新建一\Lib\ProEssentials目录,放置PEGRP32E.lib。
新建\Inc\ProEssentials目录,放置Pegrpapi.h头文件。
新建\bin 目录,放置exe文件。
3.view初始化和析构函数
//view.cpp添加头文件#include Pegrpapi.h;
//view类成员变量HWND m_hPE;
构造函数初始化
CMy000SimpleGraphView::CMy000SimpleGraphView(){m_hPE=NULL;}
CMy000SimpleGraphView::~CMy000SimpleGraphView(){if (m_hPE){PEdestroy(m_hPE);m_hPE = 0;}}
4、添加绘制图表函数
void CMy000SimpleGraphView::CreateSimpleGraph(){//! Right button click to show popup menu. // //! Double Click to show customization dialog. // //! Left-Click and drag to draw zoom box. Use popup memu or 'z' to undo zoom. // // Simple example show the basics of a graph object. // // Graph's generally only contain YData because we assume // data is plotted equally spaced left to right. RECT rect; GetClientRect( &rect ); m_hPE = PEcreate(PECONTROL_GRAPH, WS_VISIBLE, &rect, m_hWnd, 1001); if (m_hPE) { // Enable middle mouse dragging // PEnset(m_hPE, PEP_bMOUSEDRAGGINGX, TRUE); PEnset(m_hPE, PEP_bMOUSEDRAGGINGY, TRUE); // Enable Bar Glass Effect // PEnset(m_hPE, PEP_bBARGLASSEFFECT, TRUE); // Enable Plotting style gradient and bevel features // PEnset(m_hPE, PEP_nAREAGRADIENTSTYLE, PEPGS_RADIAL_BOTTOM_RIGHT); PEnset(m_hPE, PEP_nAREABEVELSTYLE, PEBS_MEDIUM_SMOOTH); PEnset(m_hPE, PEP_nSPLINEGRADIENTSTYLE, PEPGS_RADIAL_BOTTOM_RIGHT); PEnset(m_hPE, PEP_nSPLINEBEVELSTYLE, PESBS_MEDIUM_SMOOTH); // Prepare images in memory // PEnset(m_hPE, PEP_bPREPAREIMAGES, TRUE); // Pass Data // PEnset(m_hPE, PEP_nSUBSETS, 4); PEnset(m_hPE, PEP_nPOINTS, 12); float fY; for (int s=0; s<=3; s++) { for (int p=0; p<=11; p++) { fY = (((float) (p + 1)) * 50.0F) + ((float) rand()/RAND_MAX*250) + 700.0F - ((float) (s * 140.0F)) + ((float) rand()/RAND_MAX); PEvsetcellEx(m_hPE, PEP_faYDATA, s, p, &fY); } } // Set DataShadows to show 3D // PEnset(m_hPE, PEP_nDATASHADOWS, PEDS_SHADOWS); PEszset(m_hPE, PEP_szMAINTITLE, TEXT("Units Sold per Month")); PEszset(m_hPE, PEP_szSUBTITLE, TEXT("")); PEszset(m_hPE, PEP_szYAXISLABEL, TEXT("Units Sold")); PEszset(m_hPE, PEP_szXAXISLABEL, TEXT("Month")); PEnset(m_hPE, PEP_bFOCALRECT, FALSE); PEnset(m_hPE, PEP_nPLOTTINGMETHOD, PEGPM_AREA); PEnset(m_hPE, PEP_nGRIDLINECONTROL, PEGLC_BOTH); PEnset(m_hPE, PEP_bALLOWRIBBON, TRUE); PEnset(m_hPE, PEP_nALLOWZOOMING, PEAZ_HORZANDVERT); PEnset(m_hPE, PEP_nZOOMSTYLE, PEZS_RO2_NOT); // subset labels // PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 0, TEXT("Texas")); PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 1, TEXT("Florida" )); PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 2, TEXT("Washington" )); PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 3, TEXT("California" )); // point labels // PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 0, TEXT("January" )); PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 1, TEXT("February" )); PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 2, TEXT("March" )); PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 3, TEXT("April" )); PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 4, TEXT("May" )); PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 5, TEXT("June" )); PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 6, TEXT("July" )); PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 7, TEXT("August" )); PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 8, TEXT("September" )); PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 9, TEXT("October" )); PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 10, TEXT("November" )); PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 11, TEXT("December" )); // subset colors // DWORD dwArray[4] = { PERGB(128,198,0,0), PERGB(128,0, 198, 198 ), PERGB(128,198,198,0 ), PERGB(128,0,198,0 ) }; PEvsetEx(m_hPE, PEP_dwaSUBSETCOLORS, 0, 4, dwArray, 0); // subset line types // int nLineTypes[] = { PELT_MEDIUMSOLID, PELT_MEDIUMSOLID, PELT_MEDIUMSOLID, PELT_MEDIUMSOLID, PELT_MEDIUMSOLID, PELT_MEDIUMSOLID, PELT_MEDIUMSOLID, PELT_MEDIUMSOLID}; PEvset(m_hPE, PEP_naSUBSETLINETYPES, nLineTypes, 8); // subset point types // int nPointTypes[] = { PEPT_DOTSOLID, PEPT_UPTRIANGLESOLID, PEPT_SQUARESOLID, PEPT_DOWNTRIANGLESOLID, PEPT_DOT, PEPT_UPTRIANGLE, PEPT_SQUARE, PEPT_DOWNTRIANGLE }; PEvset(m_hPE, PEP_naSUBSETPOINTTYPES, nPointTypes, 8); // Allow stacked type graphs // PEnset(m_hPE, PEP_bNOSTACKEDDATA, FALSE); // Various other features // PEnset(m_hPE, PEP_bFIXEDFONTS, TRUE); PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE); PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_MEDIUM_LINE); PEnset(m_hPE, PEP_bSIMPLEPOINTLEGEND, TRUE); PEnset(m_hPE, PEP_bSIMPLELINELEGEND, TRUE); PEnset(m_hPE, PEP_nLEGENDSTYLE, PELS_1_LINE); PEnset(m_hPE, PEP_nGRADIENTBARS, 8); PEnset(m_hPE, PEP_nTEXTSHADOWS, PETS_BOLD_TEXT); PEnset(m_hPE, PEP_bMAINTITLEBOLD, TRUE); PEnset(m_hPE, PEP_bSUBTITLEBOLD, TRUE); PEnset(m_hPE, PEP_bLABELBOLD, TRUE); PEnset(m_hPE, PEP_bLINESHADOWS, TRUE); PEnset(m_hPE, PEP_nFONTSIZE, PEFS_LARGE); PEnset(m_hPE, PEP_nDATAPRECISION, 1); PEnset(m_hPE, PEP_nGRAPHPLUSTABLE, PEGPT_BOTH); PEnset(m_hPE, PEP_bMARKDATAPOINTS, TRUE); PEnset(m_hPE, PEP_nGRIDSTYLE, PEGS_DOT); // Improves metafile export // PEnset(m_hPE, PEP_nDPIX, 600); PEnset(m_hPE, PEP_nDPIY, 600); PEnset(m_hPE, PEP_nRENDERENGINE, PERE_GDI);//GDI+为PERE_GDIPLUS // Set Demo's RenderEngine to Gdi Plus VC6.0注释掉下面两句GDI+ // CMDIFrameWnd* pWnd = (CMDIFrameWnd*) AfxGetApp()->GetMainWnd(); // pWnd->SendMessage(WM_CHANGE_METAFILE, PEPLAYMETAFILEGDIPLUS ); }}
5、OnDraw中调用绘图函数
void CMy000SimpleGraphView::OnDraw(CDC* pDC){CMy000SimpleGraphDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereCreateSimpleGraph();}最后结果
- ProEssentials第000例SimpleGraph,使用DLL单文档VC6.0实现
- ProEssentials第100例SimpleScientificGraph,使用DLL单文档VC6.0实现
- ProEssentials第200例SimplePolar Chart极坐标图表,使用DLL单文档VC6.0实现
- VC6.0之MFC 单文档操作
- 如何在vc6.0的单文档和对话框中实现文件拖放功能
- 如何在vc6.0的单文档和对话框中实现文件拖放功能
- 基于vc6.0的DLL编程实现
- VC6.0使用.Net编译的DLL
- vc6.0 制作和使用DLL
- 浅谈用VC6.0单文档进行数字图像处理(上)
- 浅谈用VC6.0单文档进行数字图像处理(下)
- vc6.0 MFC 单文档 静态分割窗口
- 浅谈用VC6.0单文档进行数字图像处理(1)
- vc6.0 MFC 单文档 静态分割窗口
- vc6.0 MFC 单文档 静态分割窗口
- VC6.0用单文档调用对话框绘图
- vc6.0 MFC 单文档 静态分割窗口
- vc6.0 MFC 单文档 静态分割窗口 --learn 3
- 2112.8.25
- delpi中的RTTI初试
- ARM汇编语言(7) ARM处理器异常处理
- php display_error设置
- 常用的开源视音频解码软件库
- ProEssentials第000例SimpleGraph,使用DLL单文档VC6.0实现
- 三极管饱和及深度饱和状态的理解和判断!
- CheckStyle的使用
- C++ Unit Test Framework(单元测试框架)
- cocos2dx跨平台环境
- MyEclipse 10.6 + Flex 4.6 集成
- 线段的覆盖长度
- .NET访问配置文件app.config的功能详解
- CSSE7030 Assignmet 1