📄 graphicview.cpp
字号:
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[] = "电流\t电压\t频率\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, "工业控制实时曲线示例");
PEszset(m_hPE, PEP_szSUBTITLE, "编程设计实现--戚高");
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, "北京" );
PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 1, "上海" );
PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 2, "广州" );
PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 3, "长沙" );
PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 4, "重庆" );
PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 0, "一月" );
PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 1, "二月" );
PEvsetcell( m_hPE, PEP_szaPOINTLABELS, 2, "三月");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -