2692 lines
88 KiB
C++
2692 lines
88 KiB
C++
// GraphicView.cpp : implementation of the CGraphicView class
|
||
//
|
||
|
||
#include "stdafx.h"
|
||
#include "Graphic.h"
|
||
//#include "Pegrpapi.h"
|
||
#include "GraphicDoc.h"
|
||
#include "GraphicView.h"
|
||
#include "math.h"
|
||
#ifdef _DEBUG
|
||
#define new DEBUG_NEW
|
||
#undef THIS_FILE
|
||
static char THIS_FILE[] = __FILE__;
|
||
#endif
|
||
#include "CoolControlsManager.h"
|
||
#define GetRandom(min,max) ((rand()%(int)(((max)+1)-(min)))+(min))
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CGraphicView
|
||
|
||
IMPLEMENT_DYNCREATE(CGraphicView, CView)
|
||
|
||
BEGIN_MESSAGE_MAP(CGraphicView, CView)
|
||
//{{AFX_MSG_MAP(CGraphicView)
|
||
ON_COMMAND(ID_DRAW_BAR, OnDrawBar)
|
||
ON_WM_ERASEBKGND()
|
||
ON_COMMAND(ID_DRAW_LINE, OnDrawLine)
|
||
ON_COMMAND(ID_DRAW_PIE, OnDrawPie)
|
||
ON_COMMAND(ID_DRAW_SCATTER, OnDrawScatter)
|
||
ON_COMMAND(ID_DRAW_WHISKER, OnDrawWhisker)
|
||
ON_COMMAND(ID_DRAW_STACKED_BAR, OnDrawStackedBar)
|
||
ON_COMMAND(ID_DRAW_XY_LINE, OnDrawXyLine)
|
||
ON_WM_TIMER()
|
||
ON_COMMAND(ID_DRAW_3D_BAR, OnDraw3dBar)
|
||
ON_COMMAND(ID_DRAW_3D_STACKED_BAR, OnDraw3dStackedBar)
|
||
ON_COMMAND(ID_DRAW_3D_LINE, OnDraw3dLine)
|
||
ON_COMMAND(ID_DRAW_3D_PIE, OnDraw3dPie)
|
||
ON_COMMAND(ID_BK_LINE, OnBkLine)
|
||
ON_COMMAND(ID_BK_XY, OnBkXy)
|
||
ON_COMMAND(ID_BK_AREA, OnBkArea)
|
||
ON_COMMAND(ID_BK_BAR, OnBkBar)
|
||
ON_COMMAND(ID_BK_BAR_GROUP, OnBkBarGroup)
|
||
ON_COMMAND(ID_BK_PIE, OnBkPie)
|
||
ON_COMMAND(ID_BUTTON32781, OnButton32781)
|
||
ON_WM_SIZE()
|
||
ON_COMMAND(ID_DRAW_NEW, OnDrawNew)
|
||
ON_COMMAND(ID_DRAW_SILE, OnDrawSile)
|
||
ON_COMMAND(ID_REAL, OnReal)
|
||
ON_COMMAND(ID_DRAWGRAPH, OnDrawgraph)
|
||
//}}AFX_MSG_MAP
|
||
// Standard printing commands
|
||
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
|
||
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
|
||
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
|
||
END_MESSAGE_MAP()
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CGraphicView construction/destruction
|
||
|
||
CGraphicView::CGraphicView()
|
||
{
|
||
// TODO: add construction code here
|
||
m_nRealTimeCounter = 0;
|
||
m_nSinCounter = 0;
|
||
}
|
||
|
||
CGraphicView::~CGraphicView()
|
||
{
|
||
}
|
||
|
||
BOOL CGraphicView::PreCreateWindow(CREATESTRUCT& cs)
|
||
{
|
||
// TODO: Modify the Window class or styles here by modifying
|
||
// the CREATESTRUCT cs
|
||
|
||
return CView::PreCreateWindow(cs);
|
||
}
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CGraphicView drawing
|
||
|
||
void CGraphicView::OnDraw(CDC* pDC)
|
||
{
|
||
CGraphicDoc* pDoc = GetDocument();
|
||
ASSERT_VALID(pDoc);
|
||
// TODO: add draw code for native data here
|
||
}
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CGraphicView printing
|
||
|
||
BOOL CGraphicView::OnPreparePrinting(CPrintInfo* pInfo)
|
||
{
|
||
// default preparation
|
||
return DoPreparePrinting(pInfo);
|
||
}
|
||
|
||
void CGraphicView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
|
||
{
|
||
// TODO: add extra initialization before printing
|
||
}
|
||
|
||
void CGraphicView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
|
||
{
|
||
// TODO: add cleanup after printing
|
||
}
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CGraphicView diagnostics
|
||
|
||
#ifdef _DEBUG
|
||
void CGraphicView::AssertValid() const
|
||
{
|
||
CView::AssertValid();
|
||
}
|
||
|
||
void CGraphicView::Dump(CDumpContext& dc) const
|
||
{
|
||
CView::Dump(dc);
|
||
}
|
||
|
||
CGraphicDoc* CGraphicView::GetDocument() // non-debug version is inline
|
||
{
|
||
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CGraphicDoc)));
|
||
return (CGraphicDoc*)m_pDocument;
|
||
}
|
||
#endif //_DEBUG
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CGraphicView message handlers
|
||
|
||
void CGraphicView::OnInitialUpdate()
|
||
{
|
||
CView::OnInitialUpdate();
|
||
AfxGetApp()->GetMainWnd()->SetWindowText(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> V1.0"));
|
||
GetCtrlManager().InstallHook();//ʹ<><CAB9><EFBFBD>пؼ<D0BF><D8BC><EFBFBD><EFBFBD><EFBFBD>
|
||
// OnDraw3dStackedBar();
|
||
// TODO: Add your specialized code here and/or call the base class
|
||
|
||
}
|
||
|
||
void CGraphicView::OnDrawBar()
|
||
{
|
||
if(m_hPE)
|
||
{
|
||
// PEdestroy(m_hPE);
|
||
Invalidate();
|
||
}
|
||
if(m_hPE)
|
||
m_hPE=NULL;
|
||
//! Right button click to show popup menu. //
|
||
//! Double Click to show customization dialog. //
|
||
|
||
// This example builds upon the basic CreateSimpleGraph '000' example chart //
|
||
CreateSimpleGraph();
|
||
|
||
// Below tells object to automatically generate statistical
|
||
// comparison subsets, object will actually have
|
||
// 6 subsets when finished initializing.
|
||
// int nArray[2];
|
||
// nArray[0] = PEAS_AVGAP;
|
||
// nArray[1] = PEAS_AVGPP;
|
||
/// PEvset (m_hPE, PEP_naAUTOSTATSUBSETS, nArray, 2);
|
||
|
||
// Other various properties //
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE);
|
||
// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_DARK_LINE);
|
||
// PEnset(m_hPE, PEP_nLEGENDSTYLE, PELS_1_LINE_INSIDE_AXIS);
|
||
// PEnset(m_hPE, PEP_nPLOTTINGMETHOD, PEGPM_BAR);
|
||
// PEnset(m_hPE, PEP_bMARKDATAPOINTS, TRUE);
|
||
|
||
}
|
||
|
||
void CGraphicView::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.
|
||
m_canReal=FALSE;
|
||
CRect rect;
|
||
GetClientRect( rect );
|
||
// m_hPE = PEcreate(PECONTROL_GRAPH, WS_CHILD|WS_VISIBLE, &rect, m_hWnd, 1001);
|
||
// if (m_hPE)
|
||
// {
|
||
// // 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) + GetRandom(2, 250);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, s, p, &fY);
|
||
// }
|
||
// }
|
||
|
||
// Set DataShadows to show 3D //
|
||
// / PEnset(m_hPE, PEP_nDATASHADOWS, PEDS_SHADOWS);
|
||
// PEnset(m_hPE, PEP_nBORDERTYPES, PETAB_DROP_SHADOW);
|
||
//
|
||
// PEszset(m_hPE, PEP_szMAINTITLE, "<22><>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||
// PEszset(m_hPE, PEP_szSUBTITLE, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>--<2D>ݸ<EFBFBD>");
|
||
// PEszset(m_hPE, PEP_szYAXISLABEL, "<22><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>");
|
||
// PEszset(m_hPE, PEP_szXAXISLABEL, "<22>·<EFBFBD>");
|
||
// PEnset(m_hPE, PEP_bFOCALRECT, FALSE);
|
||
// PEnset(m_hPE, PEP_nPLOTTINGMETHOD, PEGPM_BAR);//<2F><>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>
|
||
// PEnset(m_hPE, PEP_nGRIDLINECONTROL, PEGLC_NONE);//<2F>Ƿ<EFBFBD><C7B7><EFBFBD>X,Y
|
||
// 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, "<22><>ɳ" );
|
||
// PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 1, "<22>Ϻ<EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 2, "<22><><EFBFBD><EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 3, "<22><><EFBFBD><EFBFBD>" );
|
||
//
|
||
// // point labels //
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 0, "һ<><D2BB>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 1, "<22><><EFBFBD><EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 2, "<22><><EFBFBD><EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 3, "<22><><EFBFBD><EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 4, "<22><><EFBFBD><EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 5, "<22><><EFBFBD><EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 6, "<22><><EFBFBD><EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 7, "<22><><EFBFBD><EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 8, "<22><><EFBFBD><EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 9, "ʮ<><CAAE>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 10, "ʮһ<CAAE><D2BB>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 11, "ʮ<><CAAE><EFBFBD><EFBFBD>" );
|
||
//
|
||
// // subset colors //
|
||
// DWORD dwArray[4] = { RGB(198,0,0), RGB( 0, 198, 198 ), RGB( 198,198,0 ), RGB( 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_nGRAPHPLUSTABLE, PEGPT_BOTH);
|
||
//
|
||
// 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);
|
||
//
|
||
// }
|
||
}
|
||
|
||
BOOL CGraphicView::OnEraseBkgnd(CDC* pDC)
|
||
{
|
||
return TRUE;
|
||
}
|
||
|
||
void CGraphicView::OnDrawLine()
|
||
{
|
||
if(m_hPE)
|
||
{
|
||
// PEdestroy(m_hPE);
|
||
Invalidate();
|
||
}
|
||
if(m_hPE)
|
||
m_hPE=NULL;
|
||
CreateSimpleGraph();
|
||
int nArray[2];
|
||
// nArray[0] = PEAS_AVGAP;
|
||
// nArray[1] = PEAS_AVGPP;
|
||
// PEvset (m_hPE, PEP_naAUTOSTATSUBSETS, nArray, 2);
|
||
// nArray[0] = 4; // fourth subset
|
||
// nArray[1] = 5; // fifth subset
|
||
// PEvset(m_hPE, PEP_naRANDOMSUBSETSTOGRAPH, nArray, 2);
|
||
// PEnset(m_hPE, PEP_nSCROLLINGSUBSETS, 1);
|
||
// PEnset(m_hPE, PEP_nTABLEWHAT, PETW_ALLSUBSETS);
|
||
// PEnset(m_hPE, PEP_nGRAPHPLUSTABLE, PEGPT_BOTH);
|
||
// PEnset(m_hPE, PEP_nDATAPRECISION, 0);
|
||
// PEnset(m_hPE, PEP_nFONTSIZE, PEFS_LARGE);
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE);
|
||
// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_MEDIUM_NO_BORDER);
|
||
// PEnset(m_hPE, PEP_nLEGENDSTYLE, PELS_1_LINE_INSIDE_AXIS);
|
||
// PEnset(m_hPE, PEP_nPLOTTINGMETHOD, PEGPM_BAR);
|
||
// PEnset(m_hPE, PEP_nBESTFITDEGREE, PEBFD_4TH);
|
||
// PEnset(m_hPE, PEP_bMARKDATAPOINTS, TRUE);
|
||
// PEnset(m_hPE, PEP_nLEGENDSTYLE, PELS_1_LINE);
|
||
}
|
||
|
||
|
||
|
||
void CGraphicView::OnDrawPie()
|
||
{
|
||
if(m_hPE)
|
||
{
|
||
// PEdestroy(m_hPE);
|
||
Invalidate();
|
||
}
|
||
// This example builds upon the basic CreateSimpleGraph '000' example chart //
|
||
CreateSimpleGraph();
|
||
|
||
// Disable default scale //
|
||
//// PEnset(m_hPE, PEP_nSHOWYAXIS, PESA_EMPTY);
|
||
|
||
// // Generally, a custom y axis will need manual range control //
|
||
// PEnset(m_hPE, PEP_nMANUALSCALECONTROLY, PEMSC_MINMAX);
|
||
//
|
||
// double manminY = 0.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALMINY, &manminY, 1);
|
||
//
|
||
// double manmaxY = 1000.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALMAXY, &manmaxY, 1);
|
||
//
|
||
// Create custom grid lines with HorzLineAnnotations //
|
||
// // Note that GridLineControl will control these annotations //
|
||
// double horzlineannot = 200.0F;
|
||
// PEvsetcell(m_hPE, PEP_faHORZLINEANNOTATION, 0, &horzlineannot);
|
||
// int horzlinetyp = PELAT_GRIDLINE;
|
||
// PEvsetcell(m_hPE, PEP_naHORZLINEANNOTATIONTYPE, 0, &horzlinetyp);
|
||
// PEvsetcell(m_hPE, PEP_szaHORZLINEANNOTATIONTEXT, 0, "|LLow Value");
|
||
//
|
||
// horzlineannot = 500.0F;
|
||
// PEvsetcell(m_hPE, PEP_faHORZLINEANNOTATION, 1, &horzlineannot);
|
||
// horzlinetyp = PELAT_GRIDLINE;
|
||
// PEvsetcell(m_hPE, PEP_naHORZLINEANNOTATIONTYPE, 1, &horzlinetyp);
|
||
// PEvsetcell(m_hPE, PEP_szaHORZLINEANNOTATIONTEXT, 1, "|LMedium Value");
|
||
//
|
||
// horzlineannot = 800.0F;
|
||
// PEvsetcell(m_hPE, PEP_faHORZLINEANNOTATION, 2, &horzlineannot);
|
||
// horzlinetyp = PELAT_GRIDLINE;
|
||
// PEvsetcell(m_hPE, PEP_naHORZLINEANNOTATIONTYPE, 2, &horzlinetyp);
|
||
// PEvsetcell(m_hPE, PEP_szaHORZLINEANNOTATIONTEXT, 2, "|LHigh Value");
|
||
//
|
||
// horzlineannot = 350.0F;
|
||
// PEvsetcell(m_hPE, PEP_faHORZLINEANNOTATION, 3, &horzlineannot);
|
||
// horzlinetyp = PELAT_GRIDTICK;
|
||
// PEvsetcell(m_hPE, PEP_naHORZLINEANNOTATIONTYPE, 3, &horzlinetyp);
|
||
// PEvsetcell(m_hPE, PEP_szaHORZLINEANNOTATIONTEXT, 3, "");
|
||
//
|
||
// horzlineannot = 650.0F;
|
||
// PEvsetcell(m_hPE, PEP_faHORZLINEANNOTATION, 4, &horzlineannot);
|
||
// horzlinetyp = PELAT_GRIDTICK;
|
||
// PEvsetcell(m_hPE, PEP_naHORZLINEANNOTATIONTYPE, 4, &horzlinetyp);
|
||
// PEvsetcell(m_hPE, PEP_szaHORZLINEANNOTATIONTEXT, 4, "");
|
||
//
|
||
// // Set LeftMargin to allocate space for line annotation text //
|
||
// // Use the longest string used in annotations.
|
||
// PEszset(m_hPE, PEP_szLEFTMARGIN, "Medium Value ");
|
||
//
|
||
// // Set this to see annotations //
|
||
// PEnset(m_hPE, PEP_bSHOWANNOTATIONS, TRUE);
|
||
//
|
||
// // Increase line annotation text size //
|
||
// PEnset(m_hPE, PEP_nLINEANNOTATIONTEXTSIZE, 100);
|
||
//
|
||
// // Put Grid In Front of Bars //
|
||
// PEnset(m_hPE, PEP_bGRIDINFRONT, TRUE);
|
||
//
|
||
// // Other various properties //
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE);
|
||
// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_LIGHT_INSET);
|
||
|
||
}
|
||
|
||
|
||
void CGraphicView::OnDrawScatter()
|
||
{
|
||
if(m_hPE)
|
||
{
|
||
// PEdestroy(m_hPE);
|
||
Invalidate();
|
||
}
|
||
CreateSimpleGraph();
|
||
DWORD color;
|
||
for (int s=0;s<=3;s++) //4-1
|
||
{
|
||
for (int p=0;p<=11;p++)
|
||
{
|
||
switch(s)
|
||
{
|
||
case 0:
|
||
color = RGB(15 + ((p + 1) * 20), 0, 0);
|
||
// PEvsetcellEx(m_hPE, PEP_dwaPOINTCOLORS, s, p, &color);
|
||
break;
|
||
case 1:
|
||
color = RGB(0, 15 + ((p + 1) * 20), 0);
|
||
// PEvsetcellEx(m_hPE, PEP_dwaPOINTCOLORS, s, p, &color);
|
||
break;
|
||
case 2:
|
||
color = RGB(0, 0, 15 + ((p + 1) * 20));
|
||
///* */ PEvsetcellEx(m_hPE, PEP_dwaPOINTCOLORS, s, p, &color);
|
||
break;
|
||
case 3:
|
||
color = RGB(0, 15 + ((p + 1) * 20), 15 + ((p + 1) * 20));
|
||
// PEvsetcellEx(m_hPE, PEP_dwaPOINTCOLORS, s, p, &color);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
color = RGB(198, 0, 0);
|
||
// PEvsetcell(m_hPE, PEP_dwaSUBSETCOLORS, 0, &color);
|
||
// color = RGB(0, 198, 0);
|
||
// PEvsetcell(m_hPE, PEP_dwaSUBSETCOLORS, 1, &color);
|
||
// color = RGB(0, 0, 198);
|
||
// PEvsetcell(m_hPE, PEP_dwaSUBSETCOLORS, 2, &color);
|
||
// color = RGB(0, 198, 198);
|
||
// PEvsetcell(m_hPE, PEP_dwaSUBSETCOLORS, 3, &color);
|
||
// PEnset(m_hPE, PEP_nSCROLLINGSUBSETS, 1);
|
||
// PEnset(m_hPE, PEP_nTABLEWHAT, PETW_ALLSUBSETS);
|
||
// PEnset(m_hPE, PEP_nFONTSIZE, PEFS_LARGE);
|
||
// PEnset(m_hPE, PEP_dwGRAPHBACKCOLOR, 1);
|
||
// PEnset(m_hPE, PEP_nGRAPHGRADIENTSTYLE, 0);
|
||
// PEnset(m_hPE, PEP_dwSHADOWCOLOR, RGB(0, 0, 0));
|
||
// PEnset(m_hPE, PEP_nGRAPHPLUSTABLE, PEGPT_BOTH);
|
||
// PEnset(m_hPE, PEP_nDATAPRECISION, 0);
|
||
// PEnset(m_hPE, PEP_nFORCEVERTICALPOINTS, PEFVP_SLANTED);
|
||
// PEnset(m_hPE, PEP_nPLOTTINGMETHOD, PEGPM_BAR);
|
||
// PEnset(m_hPE, PEP_nBORDERTYPES, PETAB_NO_BORDER);
|
||
}
|
||
|
||
void CGraphicView::OnDrawWhisker()
|
||
{
|
||
if(m_hPE)
|
||
{
|
||
// PEdestroy(m_hPE);
|
||
Invalidate();
|
||
}
|
||
//! Try this... Right Click chart and change the Plotting Method to Horizontal Bar Stacked. //
|
||
|
||
// This example builds upon the basic CreateSimpleGraph '000' example chart //
|
||
CreateSimpleGraph();
|
||
|
||
// // Enable Stacked type charts //
|
||
// PEnset(m_hPE, PEP_bNOSTACKEDDATA, FALSE);
|
||
//
|
||
// // Set plotting method //
|
||
// PEnset(m_hPE, PEP_nPLOTTINGMETHOD, PEGPM_BARSTACKED);
|
||
//
|
||
// // Add a table //
|
||
// PEnset(m_hPE, PEP_nGRAPHPLUSTABLE, PEGPT_BOTH);
|
||
// PEnset(m_hPE, PEP_nDATAPRECISION, 2);
|
||
//
|
||
// PEnset(m_hPE, PEP_bALLOWHORZBARSTACKED, TRUE);
|
||
//
|
||
}
|
||
|
||
|
||
void CGraphicView::OnDrawStackedBar()
|
||
{
|
||
if(m_hPE)
|
||
{
|
||
// PEdestroy(m_hPE);
|
||
Invalidate();
|
||
}
|
||
//! 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. //
|
||
|
||
// This example builds upon the basic CreateSimpleGraph '000' example chart //
|
||
CreateSimpleGraph();
|
||
|
||
// // Now sub-divide subsets into 4 individual axes //
|
||
// // Each axis with one subset in each //
|
||
// int nArray[4] = {1,1,1,1};
|
||
// PEvset (m_hPE, PEP_naMULTIAXESSUBSETS, nArray, 4);
|
||
//
|
||
// // Set first axis parameters //
|
||
// PEnset(m_hPE, PEP_nWORKINGAXIS, 0);
|
||
// PEszset(m_hPE, PEP_szYAXISLABEL, "<22><><EFBFBD><EFBFBD>1");
|
||
// PEnset(m_hPE, PEP_nPLOTTINGMETHOD, PEGPM_BAR);
|
||
//
|
||
// // Set second axis parameters //
|
||
// PEnset(m_hPE, PEP_nWORKINGAXIS, 1);
|
||
// PEszset(m_hPE, PEP_szYAXISLABEL, "<22><><EFBFBD><EFBFBD>2");
|
||
// PEnset(m_hPE, PEP_nPLOTTINGMETHOD, PEGPM_BAR);
|
||
//
|
||
// // Set third axis parameters //
|
||
// PEnset(m_hPE, PEP_nWORKINGAXIS, 2);
|
||
// PEszset(m_hPE, PEP_szYAXISLABEL, "<22><><EFBFBD><EFBFBD>3");
|
||
// PEnset(m_hPE, PEP_nPLOTTINGMETHOD, PEGPM_BAR);
|
||
//
|
||
// // Set fourth axis parameters //
|
||
// PEnset(m_hPE, PEP_nWORKINGAXIS, 3);
|
||
// PEszset(m_hPE, PEP_szYAXISLABEL, "<22><><EFBFBD><EFBFBD>4");
|
||
// PEnset(m_hPE, PEP_nPLOTTINGMETHOD, PEGPM_BAR);
|
||
//
|
||
// // Reset WorkingAxis when done //
|
||
// PEnset(m_hPE, PEP_nWORKINGAXIS, 0);
|
||
//
|
||
// // Add Axis Separator //
|
||
// PEnset(m_hPE, PEP_nMULTIAXESSEPARATORS, PEMAS_THICKPLUSTICK);
|
||
//
|
||
// // Axis Sizing //
|
||
// PEnset(m_hPE, PEP_nMULTIAXESSIZING, TRUE);
|
||
//
|
||
// // Get rid of 3d stuff //
|
||
// PEnset(m_hPE, PEP_nDATASHADOWS, PEDS_NONE);
|
||
//
|
||
// // Other various properties //
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE);
|
||
// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_DARK_NO_BORDER);
|
||
// PEnset(m_hPE, PEP_bMARKDATAPOINTS, TRUE);
|
||
//
|
||
}
|
||
|
||
|
||
void CGraphicView::OnDrawXyLine()
|
||
{
|
||
if(m_hPE)
|
||
{
|
||
// PEdestroy(m_hPE);
|
||
Invalidate();
|
||
}
|
||
RECT rect;
|
||
GetClientRect( &rect );
|
||
|
||
m_canReal=TRUE;
|
||
m_Real=TRUE;
|
||
//
|
||
// char szSubsets[] = "<22><><EFBFBD><EFBFBD>\t<><74>ѹ\tƵ<74><C6B5>\t";
|
||
// PEvset (m_hPE, PEP_szaSUBSETLABELS, szSubsets, 3);
|
||
//
|
||
// // Set Various Other Properties ///
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE);
|
||
// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_DARK_INSET);
|
||
//
|
||
// m_hPE = PEcreate(PECONTROL_GRAPH, WS_VISIBLE, &rect, m_hWnd, 1001);
|
||
// PEnset(m_hPE, PEP_bPREPAREIMAGES, TRUE);
|
||
// PEnset(m_hPE, PEP_bCACHEBMP, TRUE);
|
||
// PEnset(m_hPE, PEP_nSUBSETS, 2); // set number of subsets
|
||
// PEnset(m_hPE, PEP_nPOINTS, 200); // number of data points
|
||
// PEnset(m_hPE, PEP_nPOINTSTOGRAPH, 20);
|
||
// PEnset(m_hPE, PEP_nPOINTSTOGRAPHINIT, PEPTGI_LASTPOINTS);
|
||
// PEnset(m_hPE, PEP_nPLOTTINGMETHOD, PEGPM_POINTSPLUSLINE);
|
||
// PEszset(m_hPE, PEP_szMAINTITLE, "ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>");
|
||
// PEszset(m_hPE, PEP_szSUBTITLE, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>-<2D>ݸ<EFBFBD>"); // no subtitle
|
||
// PEnset(m_hPE, PEP_nMANUALSCALECONTROLY, PEMSC_MINMAX);
|
||
// double manminY = 1.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALMINY, &manminY, 1);
|
||
// double manmaxY = 100.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALMAXY, &manmaxY, 1);
|
||
// PEszset(m_hPE, PEP_szMANUALMAXPOINTLABEL, "000.000" );
|
||
// PEszset(m_hPE, PEP_szMANUALMAXDATASTRING, "00:00:00xx");
|
||
// PEnset(m_hPE, PEP_bNOSTACKEDDATA, TRUE);
|
||
// PEnset(m_hPE, PEP_bNORANDOMPOINTSTOGRAPH, TRUE);
|
||
// PEnset(m_hPE, PEP_bALLOWHISTOGRAM, FALSE);
|
||
// PEnset(m_hPE, PEP_bFOCALRECT, FALSE);
|
||
// PEnset(m_hPE, PEP_nGRIDLINECONTROL, FALSE);
|
||
// PEnset(m_hPE, PEP_nDATAPRECISION, 1);
|
||
// PEszset(m_hPE, PEP_szaPOINTLABELS, "");
|
||
// float f1 = 0.0F;
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 0, 0, &f1);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 0, 1, &f1);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 0, 2, &f1);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 0, 3, &f1);
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, FALSE);
|
||
// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_LIGHT_SHADOW);
|
||
// PEnset(m_hPE, PEP_bFIXEDFONTS, TRUE);
|
||
// 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_nFONTSIZE, PEFS_LARGE);
|
||
}
|
||
|
||
|
||
void CGraphicView::OnTimer(UINT nIDEvent)
|
||
{
|
||
CString ttext;
|
||
double newx2;
|
||
float YData[250];
|
||
double XData[250];
|
||
double dx;
|
||
CTime t;
|
||
///// TM petm;
|
||
if(m_canReal)
|
||
{
|
||
if(nIDEvent==2)
|
||
{
|
||
if(m_Real)
|
||
{
|
||
float newy = 50.0F + float(sin((double) m_nSinCounter * 0.075F) * 30.0F) + GetRandom(1, 15);
|
||
float newy1,newy2;
|
||
newy1 = 50.0F - float(sin((double) m_nSinCounter * 0.075F) * 30.0F) + GetRandom(1, 15);
|
||
newy2 = 50.0F + float(sin((double) m_nSinCounter * 0.075F) * 30.0F) - GetRandom(1, 15);
|
||
// Determine newx2 as current date and time in VB format //
|
||
t = CTime::GetCurrentTime();
|
||
// / petm.nDay = t.GetDay();
|
||
// petm.nMonth = t.GetMonth();
|
||
// petm.nYear = t.GetYear() - 1900;
|
||
// petm.nHour = t.GetHour();
|
||
// petm.nMinute = t.GetMinute();
|
||
// petm.nSecond = t.GetSecond();
|
||
// PEcreateserialdate(&newx2, &petm, PEDTM_VB);
|
||
|
||
// Shift data when counter reaches end of data //
|
||
if(m_nRealTimeCounter >= 1999)
|
||
{
|
||
memset(YData, 0, 250 * sizeof(float));
|
||
memset(XData, 0, 250 * sizeof(double));
|
||
// Shift Data by 250 data points, oldest 250 will be lost.
|
||
m_nRealTimeCounter = m_nRealTimeCounter - 250;
|
||
// PEvset(m_hPE, PEP_faAPPENDYDATA, YData, 250);
|
||
// PEvset(m_hPE, PEP_faAPPENDXDATAII, XData, 250);
|
||
}
|
||
|
||
// Store new values at current index //
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATAII, 0, m_nRealTimeCounter, &newx2);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 0, m_nRealTimeCounter, &newy);
|
||
//
|
||
// // Store new values at current index //
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATAII, 1, m_nRealTimeCounter, &newx2);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 1, m_nRealTimeCounter, &newy1);
|
||
//
|
||
// // Store new values at current index //
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATAII, 2, m_nRealTimeCounter, &newx2);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 2, m_nRealTimeCounter, &newy2);
|
||
|
||
// Increment index counter //
|
||
m_nRealTimeCounter += 1;
|
||
|
||
// SinCounter is only to produce sin wave data //
|
||
m_nSinCounter += 1;
|
||
if (m_nSinCounter > 30000)
|
||
m_nSinCounter = 1;
|
||
|
||
// If current time is beyond zoom max, the re-adjust zoom max //
|
||
if (newx2 > ZoomEnd)
|
||
{
|
||
ZoomEnd = ZoomEnd + ZoomSmallInterval;
|
||
ZoomStart = ZoomEnd - ZoomInterval;
|
||
// PEvset(m_hPE, PEP_fZOOMMINX, &ZoomStart, 1);
|
||
// PEvset(m_hPE, PEP_fZOOMMAXX, &ZoomEnd, 1);
|
||
//
|
||
// PEvgetcellEx(m_hPE, PEP_faXDATAII, 0, 1, &dx);
|
||
// PEvset(m_hPE, PEP_fMANUALMINX, &dx, 1);
|
||
// PEvset(m_hPE, PEP_fMANUALMAXX, &ZoomEnd, 1);
|
||
}
|
||
|
||
// // Update image and force paint //
|
||
// PEreinitialize( m_hPE );
|
||
// PEresetimage( m_hPE, 0, 0 );
|
||
::InvalidateRect(m_hPE, NULL, FALSE);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if(m_Real)
|
||
{
|
||
/*PEvset(m_hPE, PEP_szaAPPENDPOINTLABELDATA, NULL, 1);
|
||
|
||
// make some random data //
|
||
float r1,r2,fNew[2];
|
||
r1 = (float) GetRandom(1, 20);
|
||
r2 = (float) GetRandom(1, 100);
|
||
|
||
fNew[0] = r1 + (r2 * .0001F);
|
||
fNew[1] = fNew[0] * 4;
|
||
PEvset(m_hPE, PEP_faAPPENDYDATA, &fNew[0], 1);*/
|
||
///////////////////////////////////
|
||
float newy = 50.0F + float(sin((double) m_nSinCounter * 0.075F) * 30.0F) + GetRandom(1, 15);
|
||
float newx = (float)m_nRealTimeCounter;
|
||
|
||
// // Append new values //
|
||
// PEvset(m_hPE, PEP_faAPPENDYDATA, &newy, 1);
|
||
// PEvset(m_hPE, PEP_faAPPENDXDATA, &newx, 1);
|
||
// m_nRealTimeCounter = m_nRealTimeCounter + 1;
|
||
//
|
||
// // Switch to AutoScaling x axis after receiving 100 data points //
|
||
// if (m_nRealTimeCounter == 100)
|
||
// PEnset(m_hPE, PEP_nMANUALSCALECONTROLX, PEMSC_NONE);
|
||
//
|
||
// SinCounter is only to produce sin wave data //
|
||
m_nSinCounter = m_nSinCounter + 1;
|
||
if (m_nSinCounter > 30000)
|
||
m_nSinCounter = 1;
|
||
|
||
// Update image and force paint //
|
||
// PEreinitialize( m_hPE );
|
||
// PEresetimage( m_hPE, 0, 0 );
|
||
::InvalidateRect(m_hPE, NULL, FALSE);
|
||
}
|
||
else
|
||
{
|
||
////**********************************************
|
||
float newy,newx;
|
||
newy = 50.0F + float(sin((double) m_nSinCounter * 0.075F) * 30.0F) + GetRandom(1, 15);
|
||
newx = float(m_nRealTimeCounter);
|
||
//
|
||
// // Update new data at current index //
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 0, m_nRealTimeCounter, &newy);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 0, m_nRealTimeCounter, &newx);
|
||
// newy = 50.0F - float(sin((double) m_nSinCounter * 0.075F) * 30.0F) + GetRandom(1, 15);
|
||
// newx = float(m_nRealTimeCounter);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 1, m_nRealTimeCounter, &newy);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 1, m_nRealTimeCounter, &newx);
|
||
// newy = 50.0F + float(sin((double) m_nSinCounter * 0.075F) * 12.0F) - GetRandom(1, 15);
|
||
// newx = float(m_nRealTimeCounter);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 2, m_nRealTimeCounter, &newy);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 2, m_nRealTimeCounter, &newx);
|
||
|
||
// double dx;
|
||
// dx = (double) newx;
|
||
// PEvsetcell(m_hPE, PEP_faVERTLINEANNOTATION, 0, &dx);
|
||
// PEvsetcell(m_hPE, PEP_faVERTLINEANNOTATION, 2, &dx);
|
||
// PEvsetcell(m_hPE, PEP_faVERTLINEANNOTATION, 3, &dx);
|
||
// int lt = PELT_MEDIUMSOLID;
|
||
// PEvsetcell(m_hPE, PEP_naVERTLINEANNOTATIONTYPE, 0, <);
|
||
// COLORREF col;
|
||
// col = RGB(0,0,198);
|
||
// PEvsetcell(m_hPE, PEP_dwaVERTLINEANNOTATIONCOLOR, 0, &col);
|
||
// col = RGB(0,198,0);
|
||
// PEvsetcell(m_hPE, PEP_dwaVERTLINEANNOTATIONCOLOR, 1, &col);
|
||
// col = RGB(255,198,0);
|
||
// PEvsetcell(m_hPE, PEP_dwaVERTLINEANNOTATIONCOLOR, 2, &col);
|
||
// // Increment counter //
|
||
m_nRealTimeCounter = m_nRealTimeCounter + 1;
|
||
|
||
// Reset counter at end of data //
|
||
if (m_nRealTimeCounter == 100)
|
||
m_nRealTimeCounter = 0;
|
||
|
||
// SinCounter is only to produce sin wave data //
|
||
m_nSinCounter = m_nSinCounter + 1;
|
||
if (m_nSinCounter > 30000)
|
||
m_nSinCounter = 1;
|
||
|
||
// // Update image and force paint //
|
||
// PEreinitialize( m_hPE );
|
||
// // PEresetimage( m_hPE, 0, 0 );
|
||
// // PEresetimage( m_hPE, 1, 0 );
|
||
// PEresetimage( m_hPE, 2, 0 );
|
||
::InvalidateRect(m_hPE, NULL, FALSE);
|
||
}
|
||
}
|
||
}
|
||
CView::OnTimer(nIDEvent);
|
||
}
|
||
|
||
void CGraphicView::OnDraw3dBar()
|
||
{
|
||
if(m_hPE)
|
||
{
|
||
// PEdestroy(m_hPE);
|
||
Invalidate();
|
||
}
|
||
//! This shows how to place extra text inside table and within an axis. //
|
||
//! Maximize to allow room for textual data which is drawn as fixed font size. //
|
||
// This example builds upon the basic CreateSimpleGraph '000' example chart //
|
||
CreateSimpleGraph();
|
||
|
||
// Create two y axes //
|
||
int nMAS[] = {2, 2};
|
||
// PEvset(m_hPE, PEP_naMULTIAXESSUBSETS, nMAS, 2);
|
||
//
|
||
// // Construct a simple table annotation //
|
||
// PEnset(m_hPE, PEP_nWORKINGTABLE, 0);
|
||
// PEnset(m_hPE, PEP_nTAROWS, 6);
|
||
// PEnset(m_hPE, PEP_nTACOLUMNS, 12); // 12 is same number as PEP_nPOINTS
|
||
|
||
// Pass the table text //
|
||
char szTmp[48];
|
||
float fp;
|
||
int r, c;
|
||
DWORD dwColor;
|
||
BOOL b = TRUE;
|
||
|
||
for (r=0; r<6; r++)
|
||
{
|
||
if (b)
|
||
dwColor = RGB(175,175,175);
|
||
else
|
||
dwColor = RGB(255,255,255);
|
||
b = !b;
|
||
|
||
for (c=0; c<12; c++)
|
||
{
|
||
fp = float(sin(0.03F * (double) c + 1.0F + r) * 500.0F) + (float) GetRandom(2, 50);
|
||
sprintf(szTmp, "%.3f ", fp);
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, r, c, szTmp);
|
||
// PEvsetcellEx(m_hPE, PEP_dwaTACOLOR, r, c, &dwColor);
|
||
}
|
||
}
|
||
|
||
// // Set Table Location //
|
||
// PEnset(m_hPE, PEP_nTALOCATION, PETAL_INSIDE_AXIS_1);
|
||
// PEnset(m_hPE, PEP_nTAAXISLOCATION, PETAAL_BOTTOM_TABLE_SPACED);
|
||
//
|
||
// // Other Table Related Properties ///
|
||
// PEnset(m_hPE, PEP_bSHOWTABLEANNOTATION, TRUE);
|
||
// PEnset(m_hPE, PEP_nTABORDER, PETAB_NO_BORDER);
|
||
// PEnset(m_hPE, PEP_dwTABACKCOLOR, 1);
|
||
// PEnset(m_hPE, PEP_dwTAFORECOLOR, 1);
|
||
//
|
||
// // Construct a second simple table annotation //
|
||
// PEnset(m_hPE, PEP_nWORKINGTABLE, 1);
|
||
// PEnset(m_hPE, PEP_nTAROWS, 6);
|
||
// PEnset(m_hPE, PEP_nTACOLUMNS, 12);
|
||
|
||
// Pass the table text //
|
||
b = TRUE;
|
||
for (r=0; r<6; r++)
|
||
{
|
||
if (b)
|
||
dwColor = RGB(175,175,175);
|
||
else
|
||
dwColor = RGB(255,255,255);
|
||
b = !b;
|
||
|
||
for (c=0; c<12; c++)
|
||
{
|
||
fp = float(sin(0.03F * (double) c + 1.0F + (2 * r)) * 500.0F) + (float) GetRandom(2, 50);
|
||
sprintf(szTmp, "%.3f ", fp);
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, r, c, szTmp);
|
||
// PEvsetcellEx(m_hPE, PEP_dwaTACOLOR, r, c, &dwColor);
|
||
}
|
||
}
|
||
|
||
// // Set Table Location //
|
||
// PEnset(m_hPE, PEP_nTALOCATION, PETAL_INSIDE_AXIS);
|
||
// PEnset(m_hPE, PEP_nTAAXISLOCATION, PETAAL_BOTTOM_TABLE_SPACED);
|
||
//
|
||
// // Other Table Related Properties ///
|
||
// PEnset(m_hPE, PEP_bSHOWTABLEANNOTATION, TRUE);
|
||
// PEnset(m_hPE, PEP_nTABORDER, PETAB_NO_BORDER);
|
||
// PEnset(m_hPE, PEP_dwTABACKCOLOR, 1);
|
||
// PEnset(m_hPE, PEP_dwTAFORECOLOR, 1);
|
||
//
|
||
// // Construct a third simple table annotation //
|
||
// PEnset(m_hPE, PEP_nWORKINGTABLE, 2);
|
||
// PEnset(m_hPE, PEP_nTAROWS, 2);
|
||
// PEnset(m_hPE, PEP_nTACOLUMNS, 13);
|
||
//
|
||
// Pass the table text //
|
||
for (r=0; r<2; r++)
|
||
{
|
||
for (c=1; c<13; c++)
|
||
{
|
||
fp = float(sin(0.03F * (double) c + 1.0F) * 500.0F) + (float) GetRandom(2, 50);
|
||
sprintf(szTmp, "%.3f ", fp);
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, r, c, szTmp);
|
||
}
|
||
}
|
||
|
||
// Set Table Location //
|
||
// PEnset(m_hPE, PEP_nTALOCATION, PETAL_INSIDE_TABLE);
|
||
// PEnset(m_hPE, PEP_nTAAXISLOCATION, PETAAL_TOP_TABLE_SPACED);
|
||
//
|
||
// // Other Table Related Properties ///
|
||
// PEnset(m_hPE, PEP_bSHOWTABLEANNOTATION, TRUE);
|
||
// PEnset(m_hPE, PEP_dwTABACKCOLOR, RGB(0,198,198));
|
||
// PEnset(m_hPE, PEP_bTAHEADERCOLUMN, TRUE);
|
||
//
|
||
// // Set Text for Header Column //
|
||
// strcpy(szTmp, "Table Annotation Line 1");
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, 0, 0, szTmp);
|
||
// strcpy(szTmp, "Table Annotation Line 2");
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, 1, 0, szTmp);
|
||
//
|
||
// Done setting Table Annotations ///
|
||
|
||
// // Set Various Other Properties ///
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE);
|
||
// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_DARK_SHADOW);
|
||
// PEnset(m_hPE, PEP_nDATAPRECISION, 0);
|
||
// PEnset(m_hPE, PEP_nGRAPHPLUSTABLE, PEGPT_BOTH);
|
||
// PEnset(m_hPE, PEP_nLEGENDSTYLE, PELS_1_LINE_INSIDE_AXIS);
|
||
// PEnset(m_hPE, PEP_nGRIDLINECONTROL, PEGLC_YAXIS);
|
||
// PEnset(m_hPE, PEP_bMARKDATAPOINTS, TRUE);
|
||
// PEnset(m_hPE, PEP_nFONTSIZE, PEFS_SMALL);
|
||
// PEnset(m_hPE, PEP_nDATASHADOWS, PEDS_SHADOWS);
|
||
// PEnset(m_hPE, PEP_bSHOWLEGEND, FALSE);
|
||
//
|
||
// PEnset(m_hPE, PEP_nWORKINGAXIS, 0);
|
||
// PEnset(m_hPE, PEP_nPLOTTINGMETHOD, PEGPM_BAR);
|
||
// PEnset(m_hPE, PEP_nRYAXISCOMPARISONSUBSETS, 1);
|
||
// PEnset(m_hPE, PEP_dwRYAXISCOLOR, RGB(0, 198,198));
|
||
// PEszset(m_hPE, PEP_szYAXISLABEL, "");
|
||
// PEszset(m_hPE, PEP_szRYAXISLABEL, "");
|
||
//
|
||
// PEnset(m_hPE, PEP_nWORKINGAXIS, 1);
|
||
// PEnset(m_hPE, PEP_nPLOTTINGMETHOD, PEGPM_BAR);
|
||
// PEnset(m_hPE, PEP_nRYAXISCOMPARISONSUBSETS, 1);
|
||
// PEnset(m_hPE, PEP_dwRYAXISCOLOR, RGB(0, 198,0));
|
||
// PEszset(m_hPE, PEP_szYAXISLABEL, "");
|
||
// PEszset(m_hPE, PEP_szRYAXISLABEL, "");
|
||
//
|
||
// DWORD dwArray[4] = { RGB(138,0,0), RGB(0, 198, 198), RGB(138,138,0), RGB(0,198,0) };
|
||
// PEvsetEx(m_hPE, PEP_dwaSUBSETCOLORS, 0, 4, dwArray, 0);
|
||
//
|
||
// PEnset(m_hPE, PEP_nSHOWTABLEANNOTATIONSMENU, PEMC_SHOW);
|
||
|
||
}
|
||
|
||
|
||
|
||
void CGraphicView::OnDraw3dStackedBar()
|
||
{
|
||
if(m_hPE)
|
||
{
|
||
// PEdestroy(m_hPE);
|
||
Invalidate();
|
||
}
|
||
//! Chart fills 100 points and once 100 points have
|
||
//! been passed, old data is over-written as more
|
||
//! data is passed to chart.
|
||
m_canReal=TRUE;
|
||
m_Real=FALSE;
|
||
RECT rect;
|
||
GetClientRect( &rect );
|
||
|
||
// Construct Object //
|
||
//// m_hPE = PEcreate(PECONTROL_SGRAPH, WS_VISIBLE, &rect, m_hWnd, 1001);
|
||
//
|
||
// PEnset(m_hPE, PEP_nSUBSETS, 3);
|
||
// PEnset(m_hPE, PEP_nPOINTS, 100);
|
||
//
|
||
// // Set Manual Y scale //
|
||
// PEnset(m_hPE, PEP_nMANUALSCALECONTROLY, PEMSC_MINMAX);
|
||
// double arg = 1.0F;//
|
||
// PEvset(m_hPE, PEP_fMANUALMINY, &arg, 1);
|
||
// arg = 100.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALMAXY, &arg, 1);
|
||
//
|
||
// // Set Manual X scale //
|
||
// PEnset(m_hPE, PEP_nMANUALSCALECONTROLX, PEMSC_MINMAX);
|
||
// arg = 1.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALMINX, &arg, 1);
|
||
// arg = 100.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALMAXX, &arg, 1);
|
||
//
|
||
// // Show Annotations //
|
||
// PEnset(m_hPE, PEP_bSHOWANNOTATIONS, TRUE);
|
||
//
|
||
// // Clear out default data //
|
||
// float val = 0;
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 0, 0, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 0, 1, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 0, 2, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 0, 3, &val);
|
||
//
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 1, 0, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 1, 1, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 1, 2, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 1, 3, &val);
|
||
//
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 2, 0, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 2, 1, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 2, 2, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 2, 3, &val);
|
||
//
|
||
// int nTmpStyle;
|
||
// nTmpStyle = PELT_THINSOLID;
|
||
// PEvsetcell(m_hPE, PEP_naSUBSETLINETYPES, 0, &nTmpStyle);
|
||
// PEvsetcell(m_hPE, PEP_naSUBSETLINETYPES, 1, &nTmpStyle);
|
||
// PEvsetcell(m_hPE, PEP_naSUBSETLINETYPES, 2, &nTmpStyle);
|
||
// // PEvset(m_hPE, PEP_naSUBSETLINETYPES, PELT_THINSOLID, 0);
|
||
//
|
||
// char szSubsets[] = "<22><><EFBFBD><EFBFBD>\t<><74>ѹ\tƵ<74><C6B5>\t";
|
||
// PEvset (m_hPE, PEP_szaSUBSETLABELS, szSubsets, 3);
|
||
//
|
||
//
|
||
//
|
||
// // Set Various Other Properties ///
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE);
|
||
// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_DARK_LINE);
|
||
//
|
||
// PEszset(m_hPE, PEP_szMAINTITLE, "<22><>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>");
|
||
// PEszset(m_hPE, PEP_szSUBTITLE, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>--<2D>ݸ<EFBFBD>");
|
||
// PEnset(m_hPE, PEP_bNORANDOMPOINTSTOEXPORT, TRUE);
|
||
// PEnset(m_hPE, PEP_bFOCALRECT, FALSE);
|
||
// PEnset(m_hPE, PEP_bALLOWBAR, FALSE);
|
||
// PEnset(m_hPE, PEP_bALLOWPOPUP, FALSE);
|
||
// PEnset(m_hPE, PEP_bPREPAREIMAGES, TRUE);
|
||
// PEnset(m_hPE, PEP_bCACHEBMP, TRUE);
|
||
// PEnset(m_hPE, PEP_bFIXEDFONTS, TRUE);
|
||
//
|
||
// DWORD col = RGB(0, 198, 198);
|
||
// PEvsetcell(m_hPE, PEP_dwaSUBSETCOLORS, 0, &col);
|
||
//
|
||
// col = RGB(0,198,0);
|
||
// PEvsetcell(m_hPE, PEP_dwaSUBSETCOLORS, 1, &col);
|
||
//
|
||
// col = RGB(255,0,0);
|
||
// PEvsetcell(m_hPE, PEP_dwaSUBSETCOLORS, 2, &col);
|
||
//
|
||
// 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);
|
||
//
|
||
// PEreinitialize(m_hPE);
|
||
// PEresetimage(m_hPE, 2, 0);
|
||
// ::InvalidateRect(m_hPE, NULL, FALSE);
|
||
//
|
||
// //Initialize Counters and Timer
|
||
// m_nRealTimeCounter = 1;
|
||
// m_nSinCounter = 1;
|
||
SetTimer( 1, 100, NULL );
|
||
}
|
||
|
||
|
||
void CGraphicView::OnDraw3dLine()
|
||
{
|
||
if(m_hPE)
|
||
{
|
||
// PEdestroy(m_hPE);
|
||
Invalidate();
|
||
}
|
||
m_canReal=FALSE;
|
||
RECT rect;
|
||
GetClientRect( &rect );
|
||
|
||
// Construct Object //
|
||
// m_hPE = PEcreate(PECONTROL_PGRAPH, WS_VISIBLE, &rect, m_hWnd, 1001);
|
||
//
|
||
// PEnset(m_hPE, PEP_nSUBSETS, 2);
|
||
// PEnset(m_hPE, PEP_nPOINTS, 360);
|
||
//
|
||
int p;
|
||
float f1, f2;
|
||
for (p=0; p<360; p++)
|
||
{
|
||
f1 = (float) p;
|
||
f2 = (float) 150 * (float)sin((double) p * 0.054F);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 0, p, &f1);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 0, p, &f2);
|
||
}
|
||
|
||
for (p=0; p<360; p++)
|
||
{
|
||
f1 = (float) p;
|
||
// f2 = (float) 150 * (float)sin(((double) p * 0.044F)) * 2;
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 1, p, &f1);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 1, p, &f2);
|
||
}
|
||
|
||
// PEnset(m_hPE, PEP_nPLOTTINGMETHOD, PEGPM_LINE);
|
||
// PEnset(m_hPE, PEP_nALLOWZOOMING, 1);
|
||
// PEszset(m_hPE, PEP_szMAINTITLE, "Polar Chart");
|
||
// PEszset(m_hPE, PEP_szSUBTITLE, ""); // no subtitle
|
||
// float ftmp = .9F;
|
||
// PEvset(m_hPE, PEP_fFONTSIZELEGENDCNTL, &ftmp, 1 );
|
||
// PEnset(m_hPE, PEP_bPREPAREIMAGES, TRUE);
|
||
// PEnset(m_hPE, PEP_bCACHEBMP, TRUE);
|
||
// PEnset(m_hPE, PEP_bFOCALRECT, FALSE);
|
||
//
|
||
// // Set line types
|
||
// int nTypes[] = { PELT_MEDIUMSOLID, PELT_MEDIUMSOLID };
|
||
// PEvset(m_hPE, PEP_naSUBSETLINETYPES, nTypes, 2);
|
||
//
|
||
// // Set point types
|
||
// int nPTypes[] = { PEPT_DOTSOLID, PEPT_PLUS };
|
||
// PEvset(m_hPE, PEP_naSUBSETPOINTTYPES, nTypes, 2);
|
||
//
|
||
// // subset colors
|
||
// DWORD dwArray[2] = { RGB(198,0,0), RGB(0, 198, 0) };
|
||
// PEvset( m_hPE, PEP_dwaSUBSETCOLORS, dwArray, 2);
|
||
//
|
||
// // subset labels
|
||
// PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 0, "Signal #1" );
|
||
// PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 1, "Signal #2" );
|
||
//
|
||
// double dnull = -99999.0F;
|
||
// PEvset(m_hPE, PEP_fNULLDATAVALUEX, &dnull, 1);
|
||
// PEvset(m_hPE, PEP_fNULLDATAVALUE, &dnull, 1);
|
||
//
|
||
// // Set Various other features //
|
||
// PEnset(m_hPE, PEP_bFIXEDFONTS, TRUE);
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE);
|
||
// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_MEDIUM_NO_BORDER);
|
||
// PEnset(m_hPE, PEP_bSIMPLEPOINTLEGEND, TRUE);
|
||
// PEnset(m_hPE, PEP_bSIMPLELINELEGEND, TRUE);
|
||
// PEnset(m_hPE, PEP_nLEGENDSTYLE, PELS_1_LINE);
|
||
// PEnset(m_hPE, PEP_nZOOMSTYLE, PEZS_RO2_NOT);
|
||
// PEnset(m_hPE, PEP_nPOINTSIZE, PEPS_SMALL);
|
||
//
|
||
// 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_nGRADIENTBARS, 8);
|
||
// PEnset(m_hPE, PEP_nDATASHADOWS, PEDS_SHADOWS);
|
||
// float f = 1.2F;
|
||
// PEvset(m_hPE, PEP_fFONTSIZEGNCNTL, &f, 1);
|
||
// // Enable Smith Mode //
|
||
// PEnset(m_hPE, PEP_nSMITHCHART, PESC_SMITH);
|
||
// PEszset(m_hPE, PEP_szMAINTITLE, "Smith Chart");
|
||
//
|
||
// // Change the data to something more appropriate //
|
||
// PEnset(m_hPE, PEP_nSUBSETS, 2);
|
||
// PEnset(m_hPE, PEP_nPOINTS, 40);
|
||
//
|
||
// // Set first subset's data //
|
||
// int s = 0;
|
||
// for (p=0; p<=39; p++)
|
||
// {
|
||
// f = (float) p * 0.1F;
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, s, p, &f);
|
||
// f = (float) sin((double) p * 0.54F) * 0.2F;
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, s, p, &f);
|
||
// }
|
||
//
|
||
// // Set second subset's data //
|
||
// s = 1;
|
||
// for (p=0; p<=39; p++)
|
||
// {
|
||
// f = (float) p * 0.5F;
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, s, p, &f);
|
||
// f = (float) sin((double) p * 0.44F) * 0.5F;
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, s, p, &f);
|
||
// }
|
||
//
|
||
// // Set Various other features //
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE);
|
||
// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_DARK_SHADOW);
|
||
//
|
||
// // Add Some Padding on Right and Bottom //
|
||
// PEnset(m_hPE, PEP_nIMAGEADJUSTLEFT, 400);
|
||
// PEnset(m_hPE, PEP_nIMAGEADJUSTRIGHT, 400);
|
||
// PEnset(m_hPE, PEP_nIMAGEADJUSTBOTTOM, 400);
|
||
}
|
||
|
||
|
||
|
||
|
||
void CGraphicView::OnDraw3dPie()
|
||
{
|
||
if(m_hPE)
|
||
{
|
||
// PEdestroy(m_hPE);
|
||
Invalidate();
|
||
}
|
||
RECT rect;
|
||
GetClientRect( &rect );
|
||
m_canReal=FALSE;
|
||
// m_hPE = PEcreate(PECONTROL_PIE, WS_VISIBLE, &rect, m_hWnd, 1001);
|
||
// PEnset(m_hPE, PEP_nSUBSETS, 5);
|
||
// PEnset(m_hPE, PEP_nPOINTS, 12);
|
||
// int s,p;
|
||
// for (s=0; s<5; s++)
|
||
// {
|
||
// for (p=0; p<12; p++)
|
||
// {
|
||
// float f1 = (float) GetRandom(1, 5) + ((float) GetRandom(1, 150) / 100.0F);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, s, p, &f1);
|
||
// }
|
||
// }
|
||
// float f1= 0.0F;
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 0, 3, &f1);
|
||
// PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 0, "<22><><EFBFBD><EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 1, "<22>Ϻ<EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 2, "<22><><EFBFBD><EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 3, "<22><>ɳ" );
|
||
// PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 4, "<22><><EFBFBD><EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 0, "һ<><D2BB>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 1, "<22><><EFBFBD><EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 2, "<22><><EFBFBD><EFBFBD>");
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 3, "<22><><EFBFBD><EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 4, "<22><><EFBFBD><EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 5, "<22><><EFBFBD><EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 6, "<22><><EFBFBD><EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 7, "<22><><EFBFBD><EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 8, "<22><><EFBFBD><EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 9, "ʮ<><CAAE>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 10, "ʮһ<CAAE><D2BB>" );
|
||
// PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 11, "ʮ<><CAAE><EFBFBD><EFBFBD>" );
|
||
// DWORD c[12];
|
||
// c[0] = RGB(198, 0, 0);
|
||
// c[1] = RGB(0, 198, 0);
|
||
// c[2] = RGB(198, 198, 0);
|
||
// c[3] = RGB(0, 0, 198);
|
||
// c[4] = RGB(198, 0, 198);
|
||
// c[5] = RGB(0, 198, 198);
|
||
// c[6] = RGB(192, 192, 192);
|
||
// c[7] = RGB(148, 0, 0);
|
||
// c[8] = RGB(0, 148, 0);
|
||
// c[9] = RGB(148, 148, 0);
|
||
// c[10] = RGB(0, 148, 148);
|
||
// c[11] = RGB(122, 122, 122);
|
||
// PEvset(m_hPE, PEP_dwaSUBSETCOLORS, c, 12);
|
||
// PEszset(m_hPE, PEP_szMAINTITLE, "3D PIEͼ<45><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>");
|
||
// PEszset(m_hPE, PEP_szSUBTITLE, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>-<2D>ݸ<EFBFBD>"); // no subtitle
|
||
// PEnset(m_hPE, PEP_nDATAPRECISION, 1);
|
||
// PEnset(m_hPE, PEP_nGROUPINGPERCENT, 4);
|
||
// PEnset(m_hPE, PEP_nDATASHADOWS, PEDS_3D);
|
||
// PEnset(m_hPE, PEP_bDISABLE3DSHADOW, FALSE);
|
||
// PEnset(m_hPE, PEP_nAUTOEXPLODE, PEAE_ALLSUBSETS);
|
||
// PEnset(m_hPE, PEP_bFOCALRECT, FALSE);
|
||
// PEnset(m_hPE, PEP_bPREPAREIMAGES, TRUE);
|
||
// PEnset(m_hPE, PEP_bCACHEBMP, TRUE);
|
||
// PEnset(m_hPE, PEP_nFONTSIZE, PEFS_LARGE);
|
||
// PEnset(m_hPE, PEP_bFIXEDFONTS, TRUE);
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE);
|
||
// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_MEDIUM_NO_BORDER);
|
||
// 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_nFONTSIZE, PEFS_LARGE);
|
||
}
|
||
|
||
|
||
void CGraphicView::OnBkLine()
|
||
{
|
||
if(m_hPE)
|
||
{
|
||
// PEdestroy(m_hPE);
|
||
Invalidate();
|
||
}
|
||
OnDraw3dPie();
|
||
float f1 = 1;
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 0, 3, &f1);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 0, 5, &f1);
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, FALSE);
|
||
// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_MEDIUM_SHADOW);
|
||
// PEnset(m_hPE, PEP_nIMAGEADJUSTLEFT, 400);
|
||
// PEnset(m_hPE, PEP_nIMAGEADJUSTRIGHT, 400);
|
||
// PEnset(m_hPE, PEP_nIMAGEADJUSTBOTTOM, 400);
|
||
// //***********************************************
|
||
// OnDraw3dPie();
|
||
// f1 = 1;
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 0, 3, &f1);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 0, 5, &f1);
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, FALSE);
|
||
// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_MEDIUM_SHADOW);
|
||
// PEnset(m_hPE, PEP_nIMAGEADJUSTLEFT, 400);
|
||
// PEnset(m_hPE, PEP_nIMAGEADJUSTRIGHT, 400);
|
||
// PEnset(m_hPE, PEP_nIMAGEADJUSTBOTTOM, 400);
|
||
}
|
||
|
||
|
||
void CGraphicView::OnBkXy()
|
||
{
|
||
if(m_hPE)
|
||
{
|
||
// PEdestroy(m_hPE);
|
||
Invalidate();
|
||
}
|
||
RECT rect;
|
||
GetClientRect( &rect );
|
||
//
|
||
// // Construct Object //
|
||
// m_hPE = PEcreate(PECONTROL_PGRAPH, WS_VISIBLE, &rect, m_hWnd, 100);
|
||
//
|
||
// // Set to rose mode //
|
||
// PEnset(m_hPE, PEP_nSMITHCHART, PESC_ROSE); // Select Rose Plot Mode
|
||
//
|
||
// // Set titles //
|
||
// PEszset(m_hPE, PEP_szMAINTITLE, "Wind Rose Example");
|
||
// PEszset(m_hPE, PEP_szSUBTITLE, " ");
|
||
//
|
||
// // Set data //
|
||
// PEnset(m_hPE, PEP_nSUBSETS, 13);
|
||
// PEnset(m_hPE, PEP_nPOINTS, 16);
|
||
//
|
||
// float tempxdata[] =
|
||
// {
|
||
// 90.0F, 67.5F, 45.0F, 22.5F, 0.0F, 337.5F, 315.0F, 292.5F, 270.0F, 247.5F, 225.0F, 202.5F, 180.0F, 157.5F, 135.0F, 112.5F,
|
||
// 90.0F, 67.5F, 45.0F, 22.5F, 0.0F, 337.5F, 315.0F, 292.5F, 270.0F, 247.5F, 225.0F, 202.5F, 180.0F, 157.5F, 135.0F, 112.5F,
|
||
// 90.0F, 67.5F, 45.0F, 22.5F, 0.0F, 337.5F, 315.0F, 292.5F, 270.0F, 247.5F, 225.0F, 202.5F, 180.0F, 157.5F, 135.0F, 112.5F,
|
||
// 90.0F, 67.5F, 45.0F, 22.5F, 0.0F, 337.5F, 315.0F, 292.5F, 270.0F, 247.5F, 225.0F, 202.5F, 180.0F, 157.5F, 135.0F, 112.5F,
|
||
// 90.0F, 67.5F, 45.0F, 22.5F, 0.0F, 337.5F, 315.0F, 292.5F, 270.0F, 247.5F, 225.0F, 202.5F, 180.0F, 157.5F, 135.0F, 112.5F,
|
||
// 90.0F, 67.5F, 45.0F, 22.5F, 0.0F, 337.5F, 315.0F, 292.5F, 270.0F, 247.5F, 225.0F, 202.5F, 180.0F, 157.5F, 135.0F, 112.5F,
|
||
// 90.0F, 67.5F, 45.0F, 22.5F, 0.0F, 337.5F, 315.0F, 292.5F, 270.0F, 247.5F, 225.0F, 202.5F, 180.0F, 157.5F, 135.0F, 112.5F,
|
||
// 90.0F, 67.5F, 45.0F, 22.5F, 0.0F, 337.5F, 315.0F, 292.5F, 270.0F, 247.5F, 225.0F, 202.5F, 180.0F, 157.5F, 135.0F, 112.5F,
|
||
// 90.0F, 67.5F, 45.0F, 22.5F, 0.0F, 337.5F, 315.0F, 292.5F, 270.0F, 247.5F, 225.0F, 202.5F, 180.0F, 157.5F, 135.0F, 112.5F,
|
||
// 90.0F, 67.5F, 45.0F, 22.5F, 0.0F, 337.5F, 315.0F, 292.5F, 270.0F, 247.5F, 225.0F, 202.5F, 180.0F, 157.5F, 135.0F, 112.5F,
|
||
// 90.0F, 67.5F, 45.0F, 22.5F, 0.0F, 337.5F, 315.0F, 292.5F, 270.0F, 247.5F, 225.0F, 202.5F, 180.0F, 157.5F, 135.0F, 112.5F,
|
||
// 90.0F, 67.5F, 45.0F, 22.5F, 0.0F, 337.5F, 315.0F, 292.5F, 270.0F, 247.5F, 225.0F, 202.5F, 180.0F, 157.5F, 135.0F, 112.5F,
|
||
// 90.0F, 67.5F, 45.0F, 22.5F, 0.0F, 337.5F, 315.0F, 292.5F, 270.0F, 247.5F, 225.0F, 202.5F, 180.0F, 157.5F, 135.0F, 112.5F };
|
||
// PEvset(m_hPE, PEP_faXDATA, tempxdata, 208);
|
||
//
|
||
// float tempydata[] =
|
||
// { .77F, .75F, .78F, .88F, 1.07F, .98F, .69F, .51F, .38F, .50F, .56F, .65F, .72F, .70F, .62F, .63F,
|
||
// 1.04F, 1.72F, 2.68F, 4.76F, 4.58F, 2.59F, 1.29F, .99F, 1.19F, 1.77F, 2.34F, 2.89F, 2.05F, 1.31F, 1.16F, 1.08F,
|
||
// .43F, 1.05F, 3.41F, 7.40F, 5.97F, 1.48F, .30F, .39F, .73F, 1.68F, 3.53F, 2.73F, 1.24F, .55F, .25F, .27F,
|
||
// .20F, 1.07F, 3.71F, 4.49F, 2.08F, .23F, .10F, .11F, .29F, 1.16F, 2.32F, 1.26F, .54F, .18F, .09F, .22F,
|
||
// .05F, .48F, .66F, 1.31F, .26F, .01F, .02F, .04F, .14F, .33F, .75F, .46F, .18F, .05F, .07F, .03F,
|
||
// .04F, .10F, .07F, .02F, .02F, .02F, .01F, .01F, .01F, .05F, .12F, .09F, .04F, .02F, .03F, .04F,
|
||
// .01F, 0.0F, .01F, .01F, 0.0F, .01F, .01F, .01F, .01F, .01F, .01F, .03F, 0.0F, 0.0F, .02F, .01F,
|
||
// .01F, 0.0F, .01F, 0.0F, .01F, 0.0F, .01F, 0.0F, 0.0F, .01F, 0.0F, .01F, .02F, .01F, .01F, 0.0F,
|
||
// .01F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, .01F, 0.0F, 0.0F, 0.0F, 0.1F, 0.0F, 0.0F, 0.0F, 0.0F,
|
||
// 0.0F, 0.0F, .01F, 0.0F, 0.0F, 0.0F, 0.0F, .01F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
|
||
// 0.0F, 0.0F, .01F, 0.0F, 0.0F, 0.0F, 0.0F, .01F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
|
||
// 0.0F, 0.0F, .01F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,
|
||
// 0.0F, 0.0F, .01F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F,0.0F, 0.0F, 0.0F, 0.0F, 0.0F };
|
||
// PEvset(m_hPE, PEP_faYDATA, tempydata, 208);
|
||
//
|
||
// char tempptlabels[] = "E\tENE\tNE\tNNE\tN\tNNW\tNW\tWNW\tW\tWSW\tSW\tSSW\tS\tSSE\tSE\tESE\t";
|
||
// char tempsslabels[] = "3.75\t6.25\t8.75\t11.25\t13.75\t16.25\t18.75\t21.25\t23.75\t26.25\t28.75\t31.25\t33.75\t";
|
||
// PEvset(m_hPE, PEP_szaPOINTLABELS, tempptlabels, 16);
|
||
// PEvset(m_hPE, PEP_szaSUBSETLABELS, tempsslabels, 13);
|
||
//
|
||
// // Manually control degree line frequency //
|
||
// PEnset(m_hPE, PEP_bMANUALXAXISTICKNLINE, TRUE);
|
||
// double d = 22.5F;
|
||
// PEvset(m_hPE, PEP_fMANUALXAXISLINE, &d, 1);
|
||
// PEvset(m_hPE, PEP_fMANUALXAXISTICK, &d, 1);
|
||
//
|
||
// // Make it so monochrome image is just black and white //
|
||
// DWORD bwc[2];
|
||
// bwc[0] = 0L;
|
||
// bwc[1] = RGB(255,255,255);
|
||
// PEvset(m_hPE, PEP_dwaSUBSETSHADES, bwc, 2);
|
||
//
|
||
// // Remove standard legend, rose has a special legend //
|
||
// int stl = -1;
|
||
// PEvset(m_hPE, PEP_naSUBSETSTOLEGEND, &stl, 1);
|
||
//
|
||
// // Set inner circle label //
|
||
// PEszset(m_hPE, PEP_szMANUALMAXDATASTRING, "1.25|1.1%");
|
||
//
|
||
// // Get rid of radius labels //
|
||
// PEnset(m_hPE, PEP_bGRIDINFRONT, FALSE);
|
||
//
|
||
// // Enable zooming //
|
||
// PEnset(m_hPE, PEP_nALLOWZOOMING, PEAZ_HORZANDVERT);
|
||
// PEnset(m_hPE, PEP_nZOOMSTYLE, PEZS_RO2_NOT);
|
||
//
|
||
// PEnset(m_hPE, PEP_bPREPAREIMAGES, TRUE);
|
||
// PEnset(m_hPE, PEP_bCACHEBMP, TRUE);
|
||
// PEnset(m_hPE, PEP_bFIXEDFONTS, TRUE);
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, FALSE);
|
||
// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_MEDIUM_NO_BORDER);
|
||
// PEnset(m_hPE, PEP_bSIMPLEPOINTLEGEND, TRUE);
|
||
// PEnset(m_hPE, PEP_bSIMPLELINELEGEND, TRUE);
|
||
// PEnset(m_hPE, PEP_nLEGENDSTYLE, PELS_1_LINE);
|
||
//
|
||
// // Add Some Padding on Right and Bottom //
|
||
// PEnset(m_hPE, PEP_nIMAGEADJUSTLEFT, 400);
|
||
// PEnset(m_hPE, PEP_nIMAGEADJUSTRIGHT, 400);
|
||
// PEnset(m_hPE, PEP_nIMAGEADJUSTBOTTOM, 400);
|
||
//
|
||
// 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_nGRADIENTBARS, 8);
|
||
// PEnset(m_hPE, PEP_nDATASHADOWS, PEDS_SHADOWS);
|
||
// float f = 1.2F;
|
||
// PEvset(m_hPE, PEP_fFONTSIZEGNCNTL, &f, 1);
|
||
|
||
}
|
||
|
||
|
||
|
||
void CGraphicView::OnBkArea()
|
||
{
|
||
if(m_hPE)
|
||
{
|
||
// PEdestroy(m_hPE);
|
||
Invalidate();
|
||
}
|
||
// This example builds upon the basic CreateSimpleGraph '000' example chart //
|
||
CreateSimpleGraph();
|
||
|
||
/////////////////////////////////////////
|
||
// Construct a simple table annotation //
|
||
/////////////////////////////////////////
|
||
// PEnset(m_hPE, PEP_nWORKINGTABLE, 0);
|
||
// PEnset(m_hPE, PEP_nTAROWS, 1);
|
||
// PEnset(m_hPE, PEP_nTACOLUMNS, 2);
|
||
// PEnset(m_hPE, PEP_nTATEXTSIZE, 85);
|
||
//
|
||
// // Pass the table text //
|
||
// char szTmp[48];
|
||
// strcpy(szTmp, "Category 1");
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, 0, 0, szTmp);
|
||
// strcpy(szTmp, "Category 2");
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, 0, 1, szTmp);
|
||
//
|
||
// // Set column widths ///
|
||
// int nWidth = 28;
|
||
// PEvsetcell(m_hPE, PEP_naTACOLUMNWIDTH, 0, &nWidth);
|
||
// PEvsetcell(m_hPE, PEP_naTACOLUMNWIDTH, 1, &nWidth);
|
||
//
|
||
// PEnset(m_hPE, PEP_bSHOWTABLEANNOTATION, TRUE);
|
||
//
|
||
// PEnset(m_hPE, PEP_nTALOCATION, PETAL_INSIDE_AXIS_0);
|
||
// PEnset(m_hPE, PEP_nTAAXISLOCATION, PETAAL_TOP_LEFT);
|
||
// PEnset(m_hPE, PEP_nTABORDER, PETAB_SINGLE_LINE);
|
||
// PEnset(m_hPE, PEP_dwTABACKCOLOR, RGB(255,255,255));
|
||
//
|
||
// int nJust = PETAJ_CENTER;
|
||
// PEvsetcell(m_hPE, PEP_naTAJUSTIFICATION, 0, &nJust);
|
||
// PEvsetcell(m_hPE, PEP_naTAJUSTIFICATION, 1, &nJust);
|
||
//
|
||
// /////////////////////////////////////////
|
||
// // Construct a simple table annotation //
|
||
// /////////////////////////////////////////
|
||
// PEnset(m_hPE, PEP_nWORKINGTABLE, 1);
|
||
// PEnset(m_hPE, PEP_nTAROWS, 1);
|
||
// PEnset(m_hPE, PEP_nTACOLUMNS, 4);
|
||
// PEnset(m_hPE, PEP_nTATEXTSIZE, 85);
|
||
//
|
||
// strcpy(szTmp, "Sub Cat 1");
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, 0, 0, szTmp);
|
||
// strcpy(szTmp, "Sub Cat 2");
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, 0, 1, szTmp);
|
||
// strcpy(szTmp, "Sub Cat 3");
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, 0, 2, szTmp);
|
||
// strcpy(szTmp, "Sub Cat 4");
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, 0, 3, szTmp);
|
||
//
|
||
// nWidth = 14;
|
||
// PEvsetcell(m_hPE, PEP_naTACOLUMNWIDTH, 0, &nWidth);
|
||
// PEvsetcell(m_hPE, PEP_naTACOLUMNWIDTH, 1, &nWidth);
|
||
// PEvsetcell(m_hPE, PEP_naTACOLUMNWIDTH, 2, &nWidth);
|
||
// PEvsetcell(m_hPE, PEP_naTACOLUMNWIDTH, 3, &nWidth);
|
||
//
|
||
// nJust = PETAJ_CENTER;
|
||
// PEvsetcell(m_hPE, PEP_naTAJUSTIFICATION, 0, &nJust);
|
||
// PEvsetcell(m_hPE, PEP_naTAJUSTIFICATION, 1, &nJust);
|
||
// PEvsetcell(m_hPE, PEP_naTAJUSTIFICATION, 2, &nJust);
|
||
// PEvsetcell(m_hPE, PEP_naTAJUSTIFICATION, 3, &nJust);
|
||
//
|
||
// PEnset(m_hPE, PEP_dwTABACKCOLOR, RGB(240,240,240));
|
||
// PEnset(m_hPE, PEP_bSHOWTABLEANNOTATION, TRUE);
|
||
//
|
||
// PEnset(m_hPE, PEP_nTALOCATION, PETAL_INSIDE_AXIS_0);
|
||
// PEnset(m_hPE, PEP_nTAAXISLOCATION, PETAAL_TOP_LEFT + PETAAL_NEW_ROW);
|
||
//
|
||
// PEnset(m_hPE, PEP_nTABORDER, PETAB_SINGLE_LINE);
|
||
//
|
||
// /////////////////////////////////////////
|
||
// // Construct a simple table annotation //
|
||
// /////////////////////////////////////////
|
||
// PEnset(m_hPE, PEP_nWORKINGTABLE, 2);
|
||
// PEnset(m_hPE, PEP_nTAROWS, 4);
|
||
// PEnset(m_hPE, PEP_nTACOLUMNS, 8);
|
||
// PEnset(m_hPE, PEP_nTATEXTSIZE, 85);
|
||
//
|
||
// // Set Column Widths //
|
||
// nWidth = 7;
|
||
// PEvsetcell(m_hPE, PEP_naTACOLUMNWIDTH, 0, &nWidth);
|
||
// PEvsetcell(m_hPE, PEP_naTACOLUMNWIDTH, 1, &nWidth);
|
||
// PEvsetcell(m_hPE, PEP_naTACOLUMNWIDTH, 2, &nWidth);
|
||
// PEvsetcell(m_hPE, PEP_naTACOLUMNWIDTH, 3, &nWidth);
|
||
// PEvsetcell(m_hPE, PEP_naTACOLUMNWIDTH, 4, &nWidth);
|
||
// PEvsetcell(m_hPE, PEP_naTACOLUMNWIDTH, 5, &nWidth);
|
||
// PEvsetcell(m_hPE, PEP_naTACOLUMNWIDTH, 6, &nWidth);
|
||
// PEvsetcell(m_hPE, PEP_naTACOLUMNWIDTH, 7, &nWidth);
|
||
//
|
||
// Pass the table text //
|
||
float fp;
|
||
int nTmp;
|
||
for (int r=0; r<4; r++)
|
||
{
|
||
for (int c=0; c<8; c++)
|
||
{
|
||
fp = float(sin(0.3F * (double) c + 1) * 500.0F) + GetRandom(2, 50);
|
||
// sprintf(szTmp, "%.2f ", fp);
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, r, c, szTmp);
|
||
|
||
if (c > 5)
|
||
nTmp = RGB(0, 148, 0);
|
||
else if (c > 3)
|
||
nTmp = RGB(148, 148, 0);
|
||
else if (c > 1)
|
||
nTmp = RGB(0, 148, 148);
|
||
else
|
||
nTmp = RGB(198, 0, 0);
|
||
|
||
// PEvsetcellEx(m_hPE, PEP_dwaTACOLOR, r, c, &nTmp);
|
||
|
||
// nJust = PETAJ_CENTER;
|
||
// PEvsetcellEx(m_hPE, PEP_naTAJUSTIFICATION, r, c, &nJust);
|
||
}
|
||
}
|
||
|
||
// Other Table Related Properties ///
|
||
// PEnset(m_hPE, PEP_bSHOWTABLEANNOTATION, TRUE);
|
||
//
|
||
// PEnset(m_hPE, PEP_nTALOCATION, PETAL_INSIDE_AXIS_0);
|
||
// PEnset(m_hPE, PEP_nTAAXISLOCATION, PETAAL_TOP_LEFT + PETAAL_NEW_ROW + PETAAL_NEW_ROW);
|
||
// PEnset(m_hPE, PEP_nTABORDER, PETAB_SINGLE_LINE);
|
||
// PEnset(m_hPE, PEP_dwTABACKCOLOR, RGB(200, 200, 200));
|
||
//
|
||
// // Done setting Table Annotations ///
|
||
//
|
||
// // Set Various Other Properties ///
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE);
|
||
// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_MEDIUM_SHADOW);
|
||
// PEnset(m_hPE, PEP_nGRIDLINECONTROL, PEGLC_BOTH);
|
||
// PEnset(m_hPE, PEP_nDATAPRECISION, 0);
|
||
//
|
||
// double f = 1.5F;
|
||
// PEvset(m_hPE, PEP_fAXISNUMBERSPACING, &f, 1);
|
||
|
||
}
|
||
|
||
|
||
void CGraphicView::OnBkBar()
|
||
{
|
||
if(m_hPE)
|
||
{
|
||
// PEdestroy(m_hPE);
|
||
Invalidate();
|
||
}
|
||
// This example builds upon the basic CreateSimpleGraph '000' example chart //
|
||
CreateSimpleGraph();
|
||
|
||
// Construct a simple table annotation //
|
||
// PEnset(m_hPE, PEP_nWORKINGTABLE, 0);
|
||
// PEnset(m_hPE, PEP_nTAROWS, 4);
|
||
// PEnset(m_hPE, PEP_nTACOLUMNS, 7);
|
||
|
||
// Pass the table text //
|
||
char szTmp[48];
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, 1, 0, "Row 2 ");
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, 2, 0, "Row 3 ");
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, 3, 0, "Row 4 ");
|
||
//
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, 0, 1, "Column 2 ");
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, 0, 2, "Column 3 ");
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, 0, 3, "Column 4 ");
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, 0, 4, "Column 5 ");
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, 0, 5, "Column 6 ");
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, 0, 6, "Column 7 ");
|
||
|
||
float fp;
|
||
int nTmp;
|
||
for (int r=1; r<4; r++)
|
||
{
|
||
for (int c=1; c<7; c++)
|
||
{
|
||
fp = float(sin(0.3F * (double) c + 1) * 500.0F) + GetRandom(2, 50);
|
||
sprintf(szTmp, "%.5f ", fp);
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, r, c, szTmp);
|
||
nTmp = RGB(198, 0, 0);
|
||
// PEvsetcellEx(m_hPE, PEP_dwaTACOLOR, r, c, &nTmp);
|
||
}
|
||
}
|
||
|
||
// // Other Table Related Properties ///
|
||
// PEnset(m_hPE, PEP_bSHOWTABLEANNOTATION, TRUE);
|
||
// PEnset(m_hPE, PEP_nTALOCATION, PETAL_INSIDE_TOP_LEFT);
|
||
// PEnset(m_hPE, PEP_dwTABACKCOLOR, RGB(255,255,255));
|
||
// PEnset(m_hPE, PEP_nTAHEADERROWS, 1);
|
||
// PEnset(m_hPE, PEP_bTAHEADERCOLUMN, TRUE);
|
||
// PEnset(m_hPE, PEP_nTATEXTSIZE, 85);
|
||
//
|
||
// // Construct a second simple table annotation //
|
||
// PEnset(m_hPE, PEP_nWORKINGTABLE, 1); // Note WorkingTable goes to 1
|
||
// PEnset(m_hPE, PEP_nTAROWS, 15);
|
||
// PEnset(m_hPE, PEP_nTACOLUMNS, 2);
|
||
//
|
||
// // // Pass the table text //
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, 0, 0, "");
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, 0, 1, "Data");
|
||
// nTmp = PETAJ_CENTER;
|
||
// PEvsetcellEx(m_hPE, PEP_naTAJUSTIFICATION, 0, 0, &nTmp);
|
||
// PEvsetcellEx(m_hPE, PEP_naTAJUSTIFICATION, 0, 1, &nTmp);
|
||
|
||
// First Column Text //
|
||
for (r=1; r<15; r++)
|
||
{
|
||
sprintf(szTmp, "%2d", r);
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, r, 0, szTmp);
|
||
}
|
||
|
||
// // Second Column Text //
|
||
for (r=1; r<15; r++)
|
||
{
|
||
fp = float(sin(0.3F * (double) r + 1) * 500.0F) + GetRandom(2, 50);
|
||
sprintf(szTmp, "%.2f", fp);
|
||
// PEvsetcellEx(m_hPE, PEP_szaTATEXT, r, 1, szTmp);
|
||
}
|
||
|
||
// Other Table Related Properties ///
|
||
// PEnset(m_hPE, PEP_bSHOWTABLEANNOTATION, TRUE);
|
||
// PEnset(m_hPE, PEP_nTALOCATION, PETAL_LEFT_CENTER);
|
||
// PEnset(m_hPE, PEP_dwTABACKCOLOR, RGB(255,255,255));
|
||
// PEnset(m_hPE, PEP_nTAHEADERROWS, 1);
|
||
// PEnset(m_hPE, PEP_bTAHEADERCOLUMN, TRUE);
|
||
//
|
||
// // Done setting Table Annotations ///
|
||
//
|
||
// // Set Various Other Properties ///
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE);
|
||
// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_LIGHT_INSET);
|
||
// PEnset(m_hPE, PEP_nDATAPRECISION, 0);
|
||
//
|
||
}
|
||
|
||
|
||
void CGraphicView::OnBkBarGroup()
|
||
{
|
||
if(m_hPE)
|
||
{
|
||
// PEdestroy(m_hPE);
|
||
Invalidate();
|
||
}
|
||
RECT rect;
|
||
GetClientRect( &rect );
|
||
m_canReal=FALSE;
|
||
// Construct Object //
|
||
// m_hPE = PEcreate(PECONTROL_SGRAPH, WS_VISIBLE, &rect, m_hWnd, 1000);
|
||
//
|
||
// PEnset(m_hPE, PEP_nSUBSETS, 4);
|
||
// PEnset(m_hPE, PEP_nPOINTS, 12);
|
||
|
||
// Change Data to match example scales which are manually configured //
|
||
for (int s=0; s<=3; s++)
|
||
{
|
||
for (int p=0; p<=11; p++)
|
||
{
|
||
float f;
|
||
f = (p + 1) * 10.0F;
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, s, p, &f);
|
||
|
||
switch (s)
|
||
{
|
||
case 0:
|
||
f = 0.01F + GetRandom(1, 4);
|
||
break;
|
||
case 1:
|
||
f = 400.0F + GetRandom(1, 450);
|
||
break;
|
||
case 2:
|
||
f = 0.01F + GetRandom(1, 25);
|
||
break;
|
||
case 3:
|
||
f = 0.01F + GetRandom(1, 65);
|
||
break;
|
||
}
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, s, p, &f);
|
||
}
|
||
}
|
||
|
||
// Now sub-divide subsets into 4 individual axes //
|
||
// Each axis with one subset in each //
|
||
// int nArray[4] = {1,1,1,1};
|
||
// PEvset (m_hPE, PEP_naMULTIAXESSUBSETS, nArray, 4);
|
||
//
|
||
// // Create Overlapped Axes //
|
||
// int nOMA[3] = {1,1,2};
|
||
// PEvset (m_hPE, PEP_naOVERLAPMULTIAXES, nOMA, 3);
|
||
//
|
||
// // Set Proportions of Axes //
|
||
// float fMAP[3] = {.2F, .5F, .3F};
|
||
// PEvset (m_hPE, PEP_faMULTIAXESPROPORTIONS, fMAP, 3);
|
||
//
|
||
// // Set up First axis parameters //
|
||
// PEnset(m_hPE, PEP_nWORKINGAXIS, 0);
|
||
// PEnset(m_hPE, PEP_nMANUALSCALECONTROLY, PEMSC_MINMAX);
|
||
// double dMin = 0.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALMINY, &dMin, 1);
|
||
// double dMax = 5.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALMAXY, &dMax, 1);
|
||
// PEnset(m_hPE, PEP_bMANUALYAXISTICKNLINE, TRUE);
|
||
// double dLine = 2.5F;
|
||
// PEvset(m_hPE, PEP_fMANUALYAXISLINE, &dLine, 1);
|
||
// double dTick = 0.5F;
|
||
// PEvset(m_hPE, PEP_fMANUALYAXISTICK, &dTick, 1);
|
||
// PEnset(m_hPE, PEP_nSHOWTICKMARKY, PESTM_TICKS_HIDE);
|
||
// PEszset(m_hPE, PEP_szYAXISLABEL, "NPSHR (feet)");
|
||
// PEnset(m_hPE, PEP_nPLOTTINGMETHOD, PEGPM_BAR);
|
||
//
|
||
// // Set up Second axis parameters //
|
||
// PEnset(m_hPE, PEP_nWORKINGAXIS, 1);
|
||
// PEnset(m_hPE, PEP_nRYAXISCOMPARISONSUBSETS, 1);
|
||
// PEnset(m_hPE, PEP_nMANUALSCALECONTROLRY, PEMSC_MINMAX);
|
||
// dMin = 400.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALMINRY, &dMin, 1);
|
||
// dMax = 900.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALMAXRY, &dMax, 1);
|
||
// PEnset(m_hPE, PEP_bMANUALRYAXISTICKNLINE, TRUE);
|
||
// dLine = 100.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALRYAXISLINE, &dLine, 1);
|
||
// dTick = 20.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALRYAXISTICK, &dTick, 1);
|
||
// PEnset(m_hPE, PEP_nSHOWTICKMARKRY, PESTM_TICKS_HIDE);
|
||
// PEszset(m_hPE, PEP_szRYAXISLABEL, "Total Head (feet)");
|
||
// PEnset(m_hPE, PEP_nPLOTTINGMETHODII, PEGPM_POINTSPLUSSPLINE);
|
||
//
|
||
// // Set up Third axis parameters //
|
||
// PEnset(m_hPE, PEP_nWORKINGAXIS, 2);
|
||
// PEnset(m_hPE, PEP_nMANUALSCALECONTROLY, PEMSC_MINMAX);
|
||
// dMin = 0.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALMINY, &dMin, 1);
|
||
// dMax = 30.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALMAXY, &dMax, 1);
|
||
// PEnset(m_hPE, PEP_bMANUALYAXISTICKNLINE, TRUE);
|
||
// dLine = 10.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALYAXISLINE, &dLine, 1);
|
||
// dTick = 2.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALYAXISTICK, &dTick, 1);
|
||
// PEnset(m_hPE, PEP_nSHOWTICKMARKY, PESTM_TICKS_HIDE);
|
||
// PEszset(m_hPE, PEP_szYAXISLABEL, "Efficiency (%)");
|
||
// PEnset(m_hPE, PEP_nPLOTTINGMETHOD, PEGPM_POINTSPLUSSPLINE);
|
||
//
|
||
// // Set up Fourth axis parameters //
|
||
// PEnset(m_hPE, PEP_nWORKINGAXIS, 3);
|
||
// PEnset(m_hPE, PEP_nMANUALSCALECONTROLY, PEMSC_MINMAX);
|
||
// dMin = 0.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALMINY, &dMin, 1);
|
||
// dMax = 75.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALMAXY, &dMax, 1);
|
||
// PEnset(m_hPE, PEP_bMANUALYAXISTICKNLINE, TRUE);
|
||
// dLine = 25.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALYAXISLINE, &dLine, 1);
|
||
// dTick = 5.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALYAXISTICK, &dTick, 1);
|
||
// PEnset(m_hPE, PEP_nSHOWTICKMARKY, PESTM_TICKS_HIDE);
|
||
// PEszset(m_hPE, PEP_szYAXISLABEL, "Power(HP)");
|
||
// PEnset(m_hPE, PEP_nPLOTTINGMETHOD, PEGPM_POINTSPLUSSPLINE);
|
||
//
|
||
// // Done Setting Y Axis Parameters, reset WorkingAxis //
|
||
// PEnset(m_hPE, PEP_nWORKINGAXIS, 0);
|
||
//
|
||
// // Set various other properties //
|
||
// PEnset(m_hPE, PEP_nGRIDLINECONTROL, PEGLC_BOTH);
|
||
// PEnset(m_hPE, PEP_nMULTIAXISSTYLE, PEMAS_GROUP_ALL_AXES);
|
||
// PEnset(m_hPE, PEP_nLEGENDSTYLE, PELS_1_LINE_INSIDE_OVERLAP);
|
||
//
|
||
// PEszset(m_hPE, PEP_szXAXISLABEL, "Flow (gpm)");
|
||
//
|
||
// PEnset(m_hPE, PEP_nBORDERTYPES, PETAB_SINGLE_LINE);
|
||
// PEnset(m_hPE, PEP_bFIXEDFONTS, TRUE);
|
||
// PEnset(m_hPE, PEP_nFONTSIZE, PEFS_MEDIUM);
|
||
// PEszset(m_hPE, PEP_szMAINTITLE, "");
|
||
// PEszset(m_hPE, PEP_szSUBTITLE, "");
|
||
// PEszset(m_hPE, PEP_szSUBTITLEFONT, "Courier New");
|
||
//
|
||
// float fSize = 1.1F;
|
||
// PEvset(m_hPE, PEP_fFONTSIZEMSCNTL, &fSize, 1);
|
||
// PEvset(m_hPE, PEP_fFONTSIZEMBCNTL, &fSize, 1);
|
||
//
|
||
//
|
||
// PEvsetcell(m_hPE, PEP_szaMULTISUBTITLES, 0, "PUMP PREDICTED PERFORMANCE|Units: US Customary|Date: 06/07/2002");
|
||
// PEvsetcell(m_hPE, PEP_szaMULTISUBTITLES, 1, "Impeller Diameter (in): Max = 11.875, Rated = 11.72, Min =11.062||");
|
||
//
|
||
// PEvsetcell(m_hPE, PEP_szaMULTIBOTTOMTITLES, 1, "Customer: Since fixed length courier font, you can create rows by number of spaces, ||");
|
||
// PEvsetcell(m_hPE, PEP_szaMULTIBOTTOMTITLES, 0, "Pump Model: or, v5 has a table annotation feature which could be used to add text here. ||");
|
||
//
|
||
// PEnset(m_hPE, PEP_bYAXISONRIGHT, TRUE);
|
||
//
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 0, "NPSHR");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 1, "Head");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 2, "Efficiency");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 3, "Power");
|
||
//
|
||
// PEnset(m_hPE, PEP_nMULTIAXISSTYLEMENU, PEMC_SHOW);
|
||
// PEnset(m_hPE, PEP_nDATASHADOWS, PEDS_NONE);
|
||
// PEnset(m_hPE, PEP_nALLOWZOOMING, PEAZ_HORZANDVERT);
|
||
// PEnset(m_hPE, PEP_nZOOMSTYLE, PEZS_RO2_NOT);
|
||
//
|
||
// PEnset(m_hPE, PEP_bSIMPLELINELEGEND, TRUE);
|
||
// PEnset(m_hPE, PEP_bSIMPLEPOINTLEGEND, TRUE);
|
||
//
|
||
// DWORD dwArray[4] = { RGB(198,0,0), RGB( 0, 198, 198 ), RGB( 198,198,0 ), RGB( 0,198,0 ) };
|
||
// PEvset(m_hPE, PEP_dwaSUBSETCOLORS, dwArray, 4);
|
||
//
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE);
|
||
// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_DARK_NO_BORDER);
|
||
//
|
||
// 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_nGRADIENTBARS, 8);
|
||
// PEnset(m_hPE, PEP_nDATASHADOWS, PEDS_SHADOWS);
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
void CGraphicView::OnBkPie()
|
||
{
|
||
if(m_hPE)
|
||
{
|
||
// PEdestroy(m_hPE);
|
||
Invalidate();
|
||
}
|
||
//! Double Click to start and stop Auto Rotation. //
|
||
//! Click and drag scroll bar thumb tabs to quickly rotate. //
|
||
//! Right button click to show popup menu. //
|
||
|
||
RECT rect;
|
||
GetClientRect( &rect );
|
||
//// m_hPE = PEcreate(PECONTROL_3D, WS_VISIBLE, &rect, m_hWnd, 1001);
|
||
|
||
// Non-Surface chart, set PolyMode //
|
||
// PEnset(m_hPE, PEP_nPOLYMODE, PEPM_3DBAR);
|
||
|
||
// Pass Data //
|
||
double sMin, sMax;
|
||
long Row, Col, o, s, e, nQ;
|
||
long nStartRow, nEndRow, nStartCol, nEndCol, nTargetRows, nTargetCols;
|
||
|
||
nStartRow = 216;
|
||
nEndRow = 230;
|
||
nTargetRows = nEndRow - nStartRow + 1;
|
||
|
||
nStartCol = 156;
|
||
nEndCol = 170;
|
||
nTargetCols = nEndCol - nStartCol + 1;
|
||
|
||
nQ = nTargetRows * nTargetCols;
|
||
|
||
long* pElevData = NULL;
|
||
float* pMyXData = NULL;
|
||
float* pMyYData = NULL;
|
||
float* pMyZData = NULL;
|
||
|
||
char szFile[] = "terrain.bin";
|
||
FILE * pFile = NULL;
|
||
pFile = fopen(szFile, "rb");
|
||
|
||
if (pFile)
|
||
{
|
||
pElevData = new long[202500];
|
||
// Transfer entire data file into memory //
|
||
size_t cnt;
|
||
e = 0;
|
||
for (s = 0; s < 45; s++)
|
||
{
|
||
cnt = fread(&pElevData[e], sizeof(long), 4500, pFile);
|
||
e += 4500;
|
||
}
|
||
fclose(pFile);
|
||
}
|
||
else
|
||
{
|
||
MessageBox("Data File [terrain.bin] not found in program directory.");
|
||
return;
|
||
}
|
||
|
||
pMyXData = new float[nQ];
|
||
pMyYData = new float[nQ];
|
||
pMyZData = new float[nQ];
|
||
|
||
long rowcounter, colcounter;
|
||
BOOL foundtargetindex = FALSE;
|
||
rowcounter = 0;
|
||
colcounter = 0;
|
||
|
||
sMax = -9999999.9F;
|
||
sMin = 9999999.9F;
|
||
for (Row=0; Row<450; Row++)
|
||
{
|
||
for (Col=0; Col<450; Col++)
|
||
{
|
||
foundtargetindex = FALSE;
|
||
|
||
if (Row >= nStartRow && Row <= nEndRow)
|
||
{
|
||
if (Col >= nStartCol && Col <= nEndCol)
|
||
{
|
||
foundtargetindex = TRUE;
|
||
o = (rowcounter * nTargetRows) + colcounter;
|
||
pMyXData[o] = (float) Col + 1;
|
||
pMyZData[o] = (float) Row + 1;
|
||
pMyYData[o] = pElevData[(Row * 450) + Col] * 0.1F;
|
||
}
|
||
}
|
||
if (foundtargetindex)
|
||
colcounter++;
|
||
}
|
||
if (foundtargetindex)
|
||
rowcounter++;
|
||
}
|
||
|
||
// PEnset(m_hPE, PEP_nSUBSETS, nTargetRows);
|
||
// PEnset(m_hPE, PEP_nPOINTS, nTargetCols);
|
||
|
||
// Perform the actual transfer of data //
|
||
// PEvset(m_hPE, PEP_faXDATA, pMyXData, nQ);
|
||
// PEvset(m_hPE, PEP_faYDATA, pMyYData, nQ);
|
||
// PEvset(m_hPE, PEP_faZDATA, pMyZData, nQ);
|
||
|
||
if (pElevData)
|
||
delete pElevData;
|
||
if (pMyXData)
|
||
delete pMyXData;
|
||
if (pMyYData)
|
||
delete pMyYData;
|
||
if (pMyZData)
|
||
delete pMyZData;
|
||
|
||
// Set Various Other Properties //
|
||
// PEnset(m_hPE, PEP_bFIXEDFONTS, TRUE);
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE);
|
||
//// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_DARK_SHADOW);
|
||
|
||
DWORD dwColor[] = {RGB(0, 148, 0), RGB(148, 0, 0), RGB(0, 0, 148),
|
||
RGB(148, 148, 0), RGB(0, 148, 148),
|
||
RGB(0, 182, 0), RGB(182, 0, 0), RGB(0, 0, 182),
|
||
RGB(182, 182, 0), RGB(0, 182, 182),
|
||
RGB(0, 198, 0), RGB(198, 0, 0), RGB(0, 0, 198),
|
||
RGB(198, 198, 0), RGB(0, 198, 148) };
|
||
/// PEvset(m_hPE, PEP_dwaSUBSETCOLORS, dwColor, 15);
|
||
|
||
// Set subset labels for z axis**
|
||
//// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 0, "Row 1");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 1, "Row 2");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 2, "Row 3");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 3, "Row 4");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 4, "Row 5");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 5, "Row 6");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 6, "Row 7");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 7, "Row 8");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 8, "Row 9");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 9, "Row 10");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 10, "Row 11");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 11, "Row 12");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 12, "Row 13");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 13, "Row 14");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 14, "Row 15");
|
||
|
||
// Set point labels for x axis //
|
||
// PEvsetcell(m_hPE, PEP_szaPOINTLABELS, 0, "Col 1");
|
||
// PEvsetcell(m_hPE, PEP_szaPOINTLABELS, 1, "Col 2");
|
||
// PEvsetcell(m_hPE, PEP_szaPOINTLABELS, 2, "Col 3");
|
||
// PEvsetcell(m_hPE, PEP_szaPOINTLABELS, 3, "Col 4");
|
||
// PEvsetcell(m_hPE, PEP_szaPOINTLABELS, 4, "Col 5");
|
||
// PEvsetcell(m_hPE, PEP_szaPOINTLABELS, 5, "Col 6");
|
||
// PEvsetcell(m_hPE, PEP_szaPOINTLABELS, 6, "Col 7");
|
||
// PEvsetcell(m_hPE, PEP_szaPOINTLABELS, 7, "Col 8");
|
||
// PEvsetcell(m_hPE, PEP_szaPOINTLABELS, 8, "Col 9");
|
||
// PEvsetcell(m_hPE, PEP_szaPOINTLABELS, 9, "Col 10");
|
||
// PEvsetcell(m_hPE, PEP_szaPOINTLABELS, 10, "Col 11");
|
||
// PEvsetcell(m_hPE, PEP_szaPOINTLABELS, 11, "Col 12");
|
||
// PEvsetcell(m_hPE, PEP_szaPOINTLABELS, 12, "Col 13");
|
||
// PEvsetcell(m_hPE, PEP_szaPOINTLABELS, 13, "Col 14");
|
||
// PEvsetcell(m_hPE, PEP_szaPOINTLABELS, 14, "Col 15");
|
||
//
|
||
// Set Titles //
|
||
// PEszset(m_hPE, PEP_szMAINTITLE, "3D Bar");
|
||
// PEszset(m_hPE, PEP_szSUBTITLE, "");
|
||
|
||
// Set camera position //
|
||
// PEnset(m_hPE, PEP_nVIEWINGHEIGHT, 15);
|
||
// PEnset(m_hPE, PEP_nDEGREEOFROTATION, 314);
|
||
|
||
// Set Plotting methods //
|
||
// PEnset(m_hPE, PEP_nPLOTTINGMETHOD, 2); // ' Shading
|
||
|
||
// Full rotation detail //
|
||
// PEnset(m_hPE, PEP_nROTATIONDETAIL, PERD_FULLDETAIL);
|
||
|
||
// Set small font size //
|
||
// PEnset(m_hPE, PEP_nFONTSIZE, PEFS_SMALL);
|
||
|
||
// Prepare images in memory //
|
||
// PEnset(m_hPE, PEP_bPREPAREIMAGES, TRUE);
|
||
// PEnset(m_hPE, PEP_bCACHEBMP, TRUE);
|
||
// PEnset(m_hPE, PEP_bFOCALRECT, FALSE);
|
||
// PEnset(m_hPE, PEP_bALLOWSTYLEPAGE, FALSE);
|
||
// PEnset(m_hPE, PEP_nROTATIONINCREMENT, PERI_INCBY2);
|
||
|
||
// // Add Some Padding on Right and Bottom //
|
||
// PEnset(m_hPE, PEP_nIMAGEADJUSTLEFT, 400);
|
||
// PEnset(m_hPE, PEP_nIMAGEADJUSTRIGHT, 400);
|
||
// PEnset(m_hPE, PEP_nIMAGEADJUSTBOTTOM, 400);
|
||
|
||
// 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_nFONTSIZE, PEFS_LARGE);
|
||
// PEnset(m_hPE, PEP_dwGRAPHFORECOLOR, RGB(192,192,192));
|
||
|
||
}
|
||
|
||
|
||
|
||
void CGraphicView::OnButton32781()
|
||
{
|
||
if(m_hPE)
|
||
{
|
||
// PEdestroy(m_hPE);
|
||
Invalidate();
|
||
}
|
||
//! Double Click to start and stop Auto Rotation. //
|
||
//! Click and drag scroll bar thumb tabs to quickly rotate. //
|
||
//! Right button click to show popup menu. //
|
||
|
||
RECT rect;
|
||
GetClientRect( &rect );
|
||
//// m_hPE = PEcreate(PECONTROL_3D, WS_VISIBLE, &rect, m_hWnd, 1001);
|
||
|
||
// Non-Surface chart, set PolyMode //
|
||
// PEnset(m_hPE, PEP_nPOLYMODE, PEPM_SCATTER);
|
||
|
||
// Set the amount of data //
|
||
// PEnset(m_hPE, PEP_nSUBSETS, 10);
|
||
// PEnset(m_hPE, PEP_nPOINTS, 50);
|
||
|
||
// Pass data, First two subsets //
|
||
float f, f2;
|
||
for (int s=0; s<=1; s++)
|
||
{
|
||
for (int p=0; p<=49; p++)
|
||
{
|
||
f2 = 5.0F * (float)cos(p * .24);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, s, p, &f2);
|
||
|
||
if (s == 0)
|
||
f = (35.0F * (float)cos(p * 0.22F)) + (10.0F * (float)sin((s * .1F) * .94F));
|
||
else
|
||
f = (35.0F * (float)cos(p * 0.08F)) + (10.0F * (float)cos((s * .25F) * .6F));
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, s, p, &f);
|
||
|
||
f = 5.0F * (float)(sin(p * .08F));
|
||
// PEvsetcellEx(m_hPE, PEP_faZDATA, s, p, &f);
|
||
}
|
||
}
|
||
|
||
// Pass more data, Second two subsets //
|
||
for (s=0; s<=1; s++)
|
||
{
|
||
for (int p=0; p<=49; p++)
|
||
{
|
||
f2 = 5.0F * (float)cos(p * .14);
|
||
f2 += 20;
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, s + 2, p, &f2);
|
||
|
||
if (s == 0)
|
||
f = (35.0F * (float)cos(p * 0.2F)) + (10.0F * (float)sin((s * .1F) * .74F));
|
||
else
|
||
f = (35.0F * (float)cos(p * 0.1F)) + (10.0F * (float)cos((s * .25F) * .74F));
|
||
f += 40;
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, s + 2, p, &f);
|
||
|
||
f = 5.0F * (float)(sin(p * .16F));
|
||
f += 20;
|
||
// PEvsetcellEx(m_hPE, PEP_faZDATA, s + 2, p, &f);
|
||
}
|
||
}
|
||
|
||
// Pass more data, Third two subsets //
|
||
for (s=0; s<=1; s++)
|
||
{
|
||
for (int p=0; p<=49; p++)
|
||
{
|
||
f2 = 5.0F * (float)cos(p * .07);
|
||
f2 -= 20;
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, s + 4, p, &f2);
|
||
|
||
if (s == 0)
|
||
f = (35.0F * (float)cos(p * 0.08F)) + (10.0F * (float)sin((s * .07F) * .64F));
|
||
else
|
||
f = (35.0F * (float)cos(p * 0.2F)) + (10.0F * (float)cos((s * .15F) * 1.94F));
|
||
f += 40;
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, s + 4, p, &f);
|
||
|
||
f = 5.0F * (float)(sin(p * .09F));
|
||
f += 20;
|
||
// PEvsetcellEx(m_hPE, PEP_faZDATA, s + 4, p, &f);
|
||
}
|
||
}
|
||
|
||
// Pass more data, Fourth two subsets //
|
||
for (s=0; s<=1; s++)
|
||
{
|
||
for (int p=0; p<=49; p++)
|
||
{
|
||
f2 = 5.0F * (float)cos(p * .12);
|
||
f2 -= 20;
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, s + 6, p, &f2);
|
||
|
||
if (s == 0)
|
||
f = (35.0F * (float)cos(p * 0.3F)) + (10.0F * (float)sin((s * .08F) * 1.74F));
|
||
else
|
||
f = (35.0F * (float)cos(p * 0.2F)) + (10.0F * (float)cos((s * .75F) * .774F));
|
||
f -= 40;
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, s + 6, p, &f);
|
||
|
||
f = 5.0F * (float)(sin(p * .36F));
|
||
f -= 20;
|
||
// PEvsetcellEx(m_hPE, PEP_faZDATA, s + 6, p, &f);
|
||
}
|
||
}
|
||
|
||
// Pass more data, Fifth two subsets //
|
||
for (s=0; s<=1; s++)
|
||
{
|
||
for (int p=0; p<=49; p++)
|
||
{
|
||
f2 = 5.0F * (float)cos(p * .14);
|
||
f2 += 20;
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, s + 8, p, &f2);
|
||
|
||
if (s == 0)
|
||
f = (25.0F * (float)cos(p * 0.1F)) + (10.0F * (float)sin((s * .02F) * 3.74F));
|
||
else
|
||
f = (55.0F * (float)cos(p * 0.2F)) + (10.0F * (float)cos((s * .05F) * 5.74F));
|
||
f += 40;
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, s + 8, p, &f);
|
||
|
||
f = 5.0F * (float)(sin(p * .16F));
|
||
f -= 20;
|
||
// PEvsetcellEx(m_hPE, PEP_faZDATA, s + 8, p, &f);
|
||
}
|
||
}
|
||
|
||
// Set Various Other Properties //
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, FALSE);
|
||
// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_DARK_INSET);
|
||
|
||
DWORD dwColor[] = {RGB(198, 198, 0), RGB(0, 198, 198), RGB(0, 198, 0), RGB(198, 0, 0), RGB(0, 0, 198),
|
||
RGB(192,192,192), RGB(198, 0, 198), RGB(200, 198, 150), RGB(200, 200, 140), RGB(150, 0, 198)};
|
||
// PEvset(m_hPE, PEP_dwaSUBSETCOLORS, dwColor, 10);
|
||
|
||
// int nPTypes[] = {PEPT_PLUS, PEPT_PLUS, PEPT_PLUS, PEPT_PLUS, PEPT_PLUS, PEPT_PLUS, PEPT_PLUS, PEPT_PLUS, PEPT_PLUS, PEPT_PLUS};
|
||
// PEvset(m_hPE, PEP_naSUBSETPOINTTYPES, nPTypes, 10);
|
||
|
||
// Set subset labels and titles //
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 0, "Data 1");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 1, "Data 2");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 2, "Data 3");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 3, "Data 4");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 4, "Data 5");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 5, "Data 6");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 6, "Data 7");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 7, "Data 8");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 8, "Data 9");
|
||
// PEvsetcell(m_hPE, PEP_szaSUBSETLABELS, 9, "Data 10");
|
||
//
|
||
// PEszset(m_hPE, PEP_szMAINTITLE, "3D Scatter");
|
||
// PEszset(m_hPE, PEP_szSUBTITLE, "");
|
||
|
||
// Set camera position //
|
||
// PEnset(m_hPE, PEP_nVIEWINGHEIGHT, 15);
|
||
// PEnset(m_hPE, PEP_nDEGREEOFROTATION, 145);
|
||
|
||
// Set Plotting methods //
|
||
// PEnset(m_hPE, PEP_nPLOTTINGMETHOD, 0); // ' Points
|
||
|
||
// Set small font size //
|
||
// PEnset(m_hPE, PEP_nFONTSIZE, PEFS_MEDIUM);
|
||
// PEnset(m_hPE, PEP_bFIXEDFONTS, TRUE);
|
||
|
||
// Set legend location //
|
||
// PEnset(m_hPE, PEP_nLEGENDLOCATION, PELL_LEFT);
|
||
|
||
// Prepare images in memory //
|
||
// PEnset(m_hPE, PEP_bPREPAREIMAGES, TRUE);
|
||
// PEnset(m_hPE, PEP_bFOCALRECT, FALSE);
|
||
// PEnset(m_hPE, PEP_bCACHEBMP, TRUE);
|
||
|
||
// PEnset(m_hPE, PEP_nROTATIONDETAIL, PERD_FULLDETAIL);
|
||
// PEnset(m_hPE, PEP_nROTATIONSPEED, 50);
|
||
// PEnset(m_hPE, PEP_nROTATIONINCREMENT, PERI_INCBY1);
|
||
// PEnset(m_hPE, PEP_bAUTOROTATION, TRUE);
|
||
// PEnset(m_hPE, PEP_bSHOWLEGEND, FALSE);
|
||
|
||
// // Add Some Padding around image //
|
||
// PEnset(m_hPE, PEP_nIMAGEADJUSTLEFT, 400);
|
||
// PEnset(m_hPE, PEP_nIMAGEADJUSTRIGHT, 400);
|
||
// PEnset(m_hPE, PEP_nIMAGEADJUSTBOTTOM, 400);
|
||
|
||
// 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_nFONTSIZE, PEFS_LARGE);
|
||
// PEnset(m_hPE, PEP_dwGRAPHFORECOLOR, RGB(192,192,192));
|
||
|
||
}
|
||
|
||
|
||
void CGraphicView::OnSize(UINT nType, int cx, int cy)
|
||
{
|
||
CView::OnSize(nType, cx, cy);
|
||
if(m_hPE)
|
||
// PEdestroy(m_hPE);
|
||
CreateSimpleGraph();
|
||
// TODO: Add your message handler code here
|
||
|
||
}
|
||
|
||
void CGraphicView::OnDrawNew()
|
||
{
|
||
if(m_hPE)
|
||
// PEdestroy(m_hPE);
|
||
// This example builds upon the basic CreateSimpleGraph '000' example chart //
|
||
CreateSimpleGraph();
|
||
|
||
int nHatchType[4];
|
||
// nHatchType[0] = PEHS_BDIAGONAL;
|
||
// nHatchType[1] = PEHS_CROSS;
|
||
// nHatchType[2] = PEHS_DIAGCROSS;
|
||
// nHatchType[3] = PEHS_FDIAGONAL;
|
||
// PEvset(m_hPE, PEP_naSUBSETHATCH, nHatchType, 4);
|
||
|
||
// Set Other Various Properties ///
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE);
|
||
// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_MEDIUM_INSET);
|
||
|
||
// Enable Stacked type charts //
|
||
// PEnset(m_hPE, PEP_bNOSTACKEDDATA, FALSE);
|
||
|
||
// Set plotting method //
|
||
// PEnset(m_hPE, PEP_nPLOTTINGMETHOD, PEGPM_BARSTACKED);
|
||
// PEnset(m_hPE, PEP_dwHATCHBACKCOLOR, RGB(100,100,100));
|
||
// PEnset(m_hPE, PEP_bDATASHADOWS, PEDS_SHADOWS);
|
||
|
||
// Add a table //
|
||
// PEnset(m_hPE, PEP_nGRAPHPLUSTABLE, PEGPT_BOTH);
|
||
// PEnset(m_hPE, PEP_nDATAPRECISION, 0);
|
||
}
|
||
|
||
|
||
void CGraphicView::OnDrawSile()
|
||
{
|
||
if(m_hPE)
|
||
// PEdestroy(m_hPE);
|
||
//! Cross-Hair inside chart is a cursor giving a datapoint the focus //
|
||
//! Use arrow keys or mouse to move cursor to a new location //
|
||
//! You must click the control to give it the focus before key strokes will work. //
|
||
//! Right and Left arrow keys move cursor up and down points //
|
||
//! Up and Down arrow keys move cursor up and down subsets //
|
||
|
||
// This example builds upon the basic CreateSimpleSGraph '100' example chart //
|
||
CreateSimpleSGraph();
|
||
|
||
// Set up cursor //
|
||
// PEnset(m_hPE, PEP_nCURSORMODE, PECM_DATACROSS);
|
||
|
||
// Help see data points //
|
||
// PEnset(m_hPE, PEP_bMARKDATAPOINTS, TRUE);
|
||
|
||
// This will allow you to move cursor by clicking data point //
|
||
// PEnset(m_hPE, PEP_bMOUSECURSORCONTROL, TRUE);
|
||
// PEnset(m_hPE, PEP_bALLOWDATAHOTSPOTS, TRUE);
|
||
|
||
// Cursor prompting in top left corner //
|
||
// PEnset(m_hPE, PEP_bCURSORPROMPTTRACKING, TRUE);
|
||
// PEnset(m_hPE, PEP_nCURSORPROMPTSTYLE, PECPS_XYVALUES);
|
||
// PEnset(m_hPE, PEP_nCURSORPROMPTLOCATION, PECPL_TOP_RIGHT);
|
||
|
||
// Disable Zooming //
|
||
// PEnset(m_hPE, PEP_nALLOWZOOMING, PEAZ_NONE);
|
||
|
||
// Other possible values for cursor mode are below, //
|
||
// PECM_NOCURSOR = 0
|
||
// PECM_POINT = 1
|
||
// PECM_DATACROSS = 2
|
||
// PECM_DATASQUARE = 3
|
||
// PECM_FLOATINGY = 4
|
||
// PECM_FLOATINGXY = 5
|
||
|
||
// Uncomment to start cursor at different location //
|
||
// NOTE: You must reinitialize before setting cursor location //
|
||
// PEreinitialize(m_hPE);
|
||
// PEresetimage(m_hPE, 0, 0);
|
||
// PEnset(m_hPE, PEP_nCURSORSUBSET, 0);
|
||
// PEnset(m_hPE, PEP_nCURSORPOINT, 2);
|
||
|
||
////////////////////////////////////////////////////////////////////////
|
||
// Look in OnCommand handler to see how to respond to cursor movement //
|
||
////////////////////////////////////////////////////////////////////////
|
||
/*
|
||
|
||
else if ((m_nLastSelection == 105) && (HIWORD(wp) == PEWN_CURSORMOVE))
|
||
{
|
||
int nSubset, nPoint;
|
||
float xvalue, yvalue;
|
||
char buffer[64];
|
||
|
||
nSubset = PEnget(m_hPE, PEP_nCURSORSUBSET);
|
||
nPoint = PEnget(m_hPE, PEP_nCURSORPOINT);
|
||
|
||
PEvgetcellEx(m_hPE, PEP_faXDATA, nSubset, nPoint, &xvalue);
|
||
PEvgetcellEx(m_hPE, PEP_faYDATA, nSubset, nPoint, &yvalue);
|
||
|
||
sprintf(buffer, "Cursor at %d,%d=(%.2f, %.2f)", nSubset, nPoint, xvalue, yvalue);
|
||
|
||
CWnd* pParent = GetParent()->GetParent();
|
||
if (pParent) {pParent->SetWindowText(buffer);}
|
||
|
||
pParent = AfxGetMainWnd();
|
||
if (pParent) {pParent->SetWindowText("PEWN_CURSORMOVE");}
|
||
|
||
return TRUE;
|
||
}
|
||
*/
|
||
|
||
|
||
}
|
||
|
||
|
||
void CGraphicView::CreateSimpleSGraph()
|
||
{
|
||
|
||
if(m_hPE)
|
||
// PEdestroy(m_hPE);
|
||
|
||
m_Real=FALSE;
|
||
m_canReal=FALSE;
|
||
//! 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 scientific graph object. //
|
||
// Scientific Graph's contain both YData and XData and thus data
|
||
// is not plotted equally spaced as the graph object does.
|
||
|
||
RECT rect;
|
||
GetClientRect( &rect );
|
||
//// m_hPE = PEcreate(PECONTROL_SGRAPH, WS_VISIBLE, &rect, m_hWnd, 1001);
|
||
if( m_hPE )
|
||
{
|
||
float fY;
|
||
float fX;
|
||
|
||
// Set number of Subsets and Points //
|
||
/// PEnset(m_hPE, PEP_nSUBSETS, 4);
|
||
// PEnset(m_hPE, PEP_nPOINTS, 12);
|
||
|
||
for( int s=0; s<=3; s++ )
|
||
{
|
||
for( int p=0; p<=11; p++ )
|
||
{
|
||
fX = ((float) (p+1)) * 100.0F;
|
||
// PEvsetcellEx (m_hPE, PEP_faXDATA, s, p, &fX);
|
||
fY = ((float) (p+1) * 1.0F) + GetRandom(1, 250);
|
||
// PEvsetcellEx (m_hPE, PEP_faYDATA, s, p, &fY);
|
||
}
|
||
}
|
||
|
||
// Set DataShadows to show shadows
|
||
// PEnset(m_hPE, PEP_nDATASHADOWS, PEDS_SHADOWS);
|
||
|
||
// PEszset(m_hPE, PEP_szMAINTITLE, "<22><>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||
// PEszset(m_hPE, PEP_szSUBTITLE, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>--<2D>ݸ<EFBFBD>");
|
||
// PEszset(m_hPE, PEP_szYAXISLABEL, "<22><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>");
|
||
// PEszset(m_hPE, PEP_szXAXISLABEL, "<22>·<EFBFBD>");
|
||
// 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_nALLOWZOOMING, PEAZ_HORZANDVERT);
|
||
//// PEnset(m_hPE, PEP_nZOOMSTYLE, PEZS_RO2_NOT);
|
||
|
||
// subset labels //
|
||
// PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 0, "<22><>ɳ" );
|
||
// PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 1, "<22>Ϻ<EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 2, "<22><><EFBFBD><EFBFBD>" );
|
||
// PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 3, "<22><><EFBFBD><EFBFBD>" );
|
||
//
|
||
// subset colors
|
||
DWORD dwArray[4] = { RGB(198,0,0), RGB( 0, 198, 198 ), RGB( 198,198,0 ), RGB( 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 };
|
||
// PEvset(m_hPE, PEP_naSUBSETLINETYPES, nLineTypes, 4);
|
||
|
||
// subset point types
|
||
//////// int nPointTypes[] = { PEPT_DOTSOLID, PEPT_UPTRIANGLESOLID, PEPT_SQUARESOLID, PEPT_DOWNTRIANGLESOLID };
|
||
// PEvset(m_hPE, PEP_naSUBSETPOINTTYPES, nPointTypes, 4);
|
||
|
||
// Version 4.0 Features //
|
||
// PEnset(m_hPE, PEP_bFIXEDFONTS, TRUE);
|
||
// PEnset(m_hPE, PEP_bSIMPLEPOINTLEGEND, TRUE);
|
||
// PEnset(m_hPE, PEP_bSIMPLELINELEGEND, TRUE);
|
||
// // PEnset(m_hPE, PEP_nLEGENDSTYLE, PELS_1_LINE);
|
||
// PEnset(m_hPE, PEP_nMULTIAXISSTYLE, PEMAS_SEPARATE_AXES);
|
||
|
||
// Set Various Other Properties //
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE);
|
||
// PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_MEDIUM_NO_BORDER);
|
||
|
||
// 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_bSCROLLINGHORZZOOM, TRUE);
|
||
|
||
|
||
}
|
||
}
|
||
|
||
|
||
|
||
void CGraphicView::OnReal()
|
||
{
|
||
KillTimer(1);
|
||
if(m_hPE)
|
||
// PEdestroy(m_hPE);
|
||
|
||
m_canReal=TRUE;
|
||
m_Real=TRUE;
|
||
|
||
//! Chart holds 2000 points. Data is fed into
|
||
//! data arrays at current data index. Once 2000
|
||
//! points have been passed, 250 are truncated as
|
||
//! data is shifted to make room for 250 more data
|
||
//! points.
|
||
|
||
//! Depending upon ZoomMode property, this example with
|
||
//! either show most current 3 minutes or all data in
|
||
//! object.
|
||
|
||
|
||
RECT rect;
|
||
GetClientRect( &rect );
|
||
|
||
// Construct Object //
|
||
// m_hPE = PEcreate(PECONTROL_SGRAPH, WS_CHILD|WS_VISIBLE, &rect, m_hWnd, 1001);
|
||
|
||
// PEnset(m_hPE, PEP_nSUBSETS, 3);
|
||
// PEnset(m_hPE, PEP_nPOINTS, 2000);
|
||
|
||
// PEnset(m_hPE, PEP_nDATETIMEMODE, PEDTM_VB); // Date/Time Mode
|
||
// PEnset(m_hPE, PEP_bUSINGXDATAII, TRUE); // Using Double Precision XDataII
|
||
|
||
// Some functional attributes // 1440 is minutes in a day
|
||
ZoomInterval = (3.0F / 1440.0F); // 3 minute scale zoom interval
|
||
ZoomSmallInterval = (0.5F / 1440.0F); // 30 second scale adjustment
|
||
|
||
// Determine current date and time in VB's format //
|
||
CTime t = CTime::GetCurrentTime();
|
||
//// TM petm;
|
||
// petm.nDay = t.GetDay();
|
||
// petm.nMonth = t.GetMonth();
|
||
// petm.nYear = t.GetYear() - 1900;
|
||
// petm.nHour = t.GetHour();
|
||
// petm.nMinute = t.GetMinute();
|
||
// petm.nSecond = t.GetSecond();
|
||
// PEcreateserialdate(&StartTime, &petm, PEDTM_VB);
|
||
|
||
// Extents to show all data points
|
||
double manmaxx;
|
||
// PEnset(m_hPE, PEP_nMANUALSCALECONTROLX, PEMSC_MINMAX);
|
||
// PEvset(m_hPE, PEP_fMANUALMINX, &StartTime, 1);
|
||
manmaxx = StartTime + ZoomInterval;
|
||
// PEvset(m_hPE, PEP_fMANUALMAXX, &manmaxx, 1);
|
||
|
||
// PEnset(m_hPE, PEP_nMANUALSCALECONTROLY, PEMSC_MINMAX);
|
||
double d = 1.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALMINY, &d, 1);
|
||
d = 100.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALMAXY, &d, 1);
|
||
|
||
// Set Zoomed partial Range of X Scale //
|
||
ZoomStart = StartTime;
|
||
ZoomEnd = ZoomStart + ZoomInterval;
|
||
|
||
// PEvset(m_hPE, PEP_fZOOMMINX, &ZoomStart, 1);
|
||
// PEvset(m_hPE, PEP_fZOOMMAXX, &ZoomEnd, 1);
|
||
// d = 1.0F;
|
||
// PEvset(m_hPE, PEP_fZOOMMINY, &d, 1);
|
||
// d = 100.0F;
|
||
// PEvset(m_hPE, PEP_fZOOMMAXY, &d, 1);
|
||
//
|
||
// // PEnset(m_hPE, PEP_bZOOMMODE, TRUE);
|
||
// If ZoomMode is True, you will see 3 minutes of data //
|
||
// If ZoomMode is False, you will see all data in object //
|
||
|
||
// Clear out default data '
|
||
// No need to clear out XData since using XDataII '
|
||
float f = 0.0F;
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 0, 0, &f);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 0, 1, &f);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 0, 2, &f);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 0, 3, &f);
|
||
//
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 1, 0, &f);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 1, 1, &f);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 1, 2, &f);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 1, 3, &f);
|
||
//
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 2, 0, &f);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 2, 1, &f);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 2, 2, &f);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 2, 3, &f);
|
||
//
|
||
// Show Annotations //
|
||
// PEnset(m_hPE, PEP_bSHOWANNOTATIONS, TRUE);
|
||
//
|
||
// // Set Various Other Properties ///
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE);
|
||
// // PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_DARK_INSET);
|
||
//
|
||
// int nTmpStyle;
|
||
// // nTmpStyle = PELT_THINSOLID;
|
||
// PEvsetcell(m_hPE, PEP_naSUBSETLINETYPES, 0, &nTmpStyle);
|
||
// PEvsetcell(m_hPE, PEP_naSUBSETLINETYPES, 1, &nTmpStyle);
|
||
// PEvsetcell(m_hPE, PEP_naSUBSETLINETYPES, 2, &nTmpStyle);
|
||
// PEvset(m_hPE, PEP_naSUBSETLINETYPES, PELT_THINSOLID, 0);
|
||
|
||
char szSubsets[] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\t<EFBFBD><EFBFBD>ѹ\tƵ<EFBFBD><EFBFBD>\t";
|
||
// PEvset (m_hPE, PEP_szaSUBSETLABELS, szSubsets, 3);
|
||
//
|
||
// PEszset(m_hPE, PEP_szMAINTITLE, "<22><>ҵ<EFBFBD><D2B5>ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD>");
|
||
// PEszset(m_hPE, PEP_szSUBTITLE, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>-<2D>ݸ<EFBFBD>");
|
||
// PEnset(m_hPE, PEP_bNORANDOMPOINTSTOEXPORT, TRUE);
|
||
// PEnset(m_hPE, PEP_bFOCALRECT, FALSE);
|
||
// PEnset(m_hPE, PEP_bALLOWBAR, FALSE);
|
||
// PEnset(m_hPE, PEP_bALLOWPOPUP, FALSE);
|
||
// PEnset(m_hPE, PEP_bPREPAREIMAGES, TRUE);
|
||
// PEnset(m_hPE, PEP_bCACHEBMP, TRUE);
|
||
// PEnset(m_hPE, PEP_bFIXEDFONTS, TRUE);
|
||
|
||
DWORD col = RGB(0, 198, 198);
|
||
// PEvsetcell(m_hPE, PEP_dwaSUBSETCOLORS, 0, &col);
|
||
//
|
||
// col = RGB(0,198,0);
|
||
// PEvsetcell(m_hPE, PEP_dwaSUBSETCOLORS, 1, &col);
|
||
//
|
||
// col = RGB(255,0,0);
|
||
// PEvsetcell(m_hPE, PEP_dwaSUBSETCOLORS, 2, &col);
|
||
//
|
||
// 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);
|
||
//
|
||
// // PEreinitialize(m_hPE);
|
||
// PEresetimage(m_hPE, 0, 0);
|
||
::InvalidateRect(m_hPE, NULL, FALSE);
|
||
|
||
// Initialize Counters and Timer //
|
||
m_nRealTimeCounter = 1;
|
||
m_nSinCounter = 1;
|
||
SetTimer( 2, 250, NULL );
|
||
}
|
||
|
||
|
||
|
||
void CGraphicView::OnDrawgraph()
|
||
{
|
||
if(m_hPE)
|
||
{
|
||
// PEdestroy(m_hPE);
|
||
Invalidate();
|
||
}
|
||
m_Real=TRUE;
|
||
m_canReal=TRUE;
|
||
//! Chart fills 100 points but x axis is initially
|
||
//! manually scaled. Once 100 point have been passed,
|
||
//! the chart switches to autoscaling the x axis.
|
||
|
||
RECT rect;
|
||
GetClientRect( &rect );
|
||
|
||
// Construct Object //
|
||
// m_hPE = PEcreate(PECONTROL_SGRAPH, WS_VISIBLE, &rect, m_hWnd, 1001);
|
||
|
||
// PEnset(m_hPE, PEP_nSUBSETS, 1);
|
||
// PEnset(m_hPE, PEP_nPOINTS, 100);
|
||
//
|
||
// // Set Manual Y scale //
|
||
// // PEnset(m_hPE, PEP_nMANUALSCALECONTROLY, PEMSC_MINMAX);
|
||
// double arg = 1.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALMINY, &arg, 1);
|
||
// arg = 100.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALMAXY, &arg, 1);
|
||
//
|
||
// // Set Manual X scale //
|
||
// // PEnset(m_hPE, PEP_nMANUALSCALECONTROLX, PEMSC_MINMAX);
|
||
// arg = 1.0F;
|
||
// PEvset(m_hPE, PEP_fMANUALMINX, &arg, 1);
|
||
// arg = 100;
|
||
// PEvset(m_hPE, PEP_fMANUALMAXX, &arg, 1);
|
||
//
|
||
// // Clear out default data //
|
||
// float val = 0;
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 0, 0, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 0, 1, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 0, 2, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 0, 3, &val);
|
||
//
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 0, 0, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 0, 1, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 0, 2, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 0, 3, &val);
|
||
//
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 1, 0, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 1, 1, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 1, 2, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 1, 3, &val);
|
||
//
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 1, 0, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 1, 1, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 1, 2, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 1, 3, &val);
|
||
//
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 2, 0, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 2, 1, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 2, 2, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faXDATA, 2, 3, &val);
|
||
//
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 2, 0, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 2, 1, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 2, 2, &val);
|
||
// PEvsetcellEx(m_hPE, PEP_faYDATA, 2, 3, &val);
|
||
//
|
||
// int nTmpStyle;
|
||
// // nTmpStyle = PELT_THINSOLID;
|
||
// PEvsetcell(m_hPE, PEP_naSUBSETLINETYPES, 0, &nTmpStyle);
|
||
// PEvsetcell(m_hPE, PEP_naSUBSETLINETYPES, 1, &nTmpStyle);
|
||
// PEvsetcell(m_hPE, PEP_naSUBSETLINETYPES, 2, &nTmpStyle);
|
||
// // PEvset(m_hPE, PEP_naSUBSETLINETYPES, PELT_THINSOLID, 0);
|
||
//
|
||
// char szSubsets[] = "<22><><EFBFBD><EFBFBD>\t<><74>ѹ\tƵ<74><C6B5>\t";
|
||
// PEvset (m_hPE, PEP_szaSUBSETLABELS, szSubsets, 3);
|
||
//
|
||
// // Set Various Other Properties ///
|
||
// PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE);
|
||
// // PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_MEDIUM_INSET);
|
||
//
|
||
// PEszset(m_hPE, PEP_szMAINTITLE, "<22><>ҵ<EFBFBD><D2B5>ʵʱ<CAB5><CAB1><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>");
|
||
//
|
||
// PEszset(m_hPE, PEP_szSUBTITLE, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>-<2D>ݸ<EFBFBD>");
|
||
// PEnset(m_hPE, PEP_bNORANDOMPOINTSTOEXPORT, TRUE);
|
||
// PEnset(m_hPE, PEP_bFOCALRECT, FALSE);
|
||
// PEnset(m_hPE, PEP_bALLOWBAR, FALSE);
|
||
// PEnset(m_hPE, PEP_bALLOWPOPUP, FALSE);
|
||
// PEnset(m_hPE, PEP_bPREPAREIMAGES, TRUE);
|
||
// PEnset(m_hPE, PEP_bCACHEBMP, TRUE);
|
||
// PEnset(m_hPE, PEP_bFIXEDFONTS, TRUE);
|
||
//
|
||
// DWORD col = RGB(255, 0, 0);
|
||
// PEvsetcell(m_hPE, PEP_dwaSUBSETCOLORS, 0, &col);
|
||
//
|
||
// col = RGB(0,198,0);
|
||
// PEvsetcell(m_hPE, PEP_dwaSUBSETCOLORS, 1, &col);
|
||
//
|
||
// col = RGB(255,0,0);
|
||
// PEvsetcell(m_hPE, PEP_dwaSUBSETCOLORS, 2, &col);
|
||
// //
|
||
// // 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);
|
||
|
||
// PEreinitialize(m_hPE);
|
||
// PEresetimage(m_hPE, 0, 0);
|
||
|
||
// Initialize Counters and Timer
|
||
m_nRealTimeCounter = 1;
|
||
m_nSinCounter = 1;
|
||
SetTimer( 1, 100, NULL );
|
||
|
||
}
|
||
|