📄 atp_graphicdlg.cpp
字号:
// ATP_GraphicDlg.cpp : implementation file
//
#include "stdafx.h"
#include "graphic.h"
#include "ATP_GraphicDlg.h"
#include "Pegrpapi.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// ATP_GraphicDlg dialog
ATP_GraphicDlg::ATP_GraphicDlg(CWnd* pParent /*=NULL*/)
: CDialog(ATP_GraphicDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(ATP_GraphicDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_dfXMinValue=1.0;
m_dfXMaxValue=100.0;
m_dfYMinValue=1.0;
m_dfYMaxValue=100.0;
strcpy(m_szMainTitle,"GPW武器跟瞄统计分析");
strcpy(m_szSubTitle,"单项性能");
strcpy(m_szXLabel,"X坐标");
strcpy(m_szYLabel,"Y坐标");
for (int i=0;i<100;i++)
{
m_XData.AddTail(i*1.0);
m_YData.AddTail(i*1.0);
}
}
void ATP_GraphicDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(ATP_GraphicDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(ATP_GraphicDlg, CDialog)
//{{AFX_MSG_MAP(ATP_GraphicDlg)
ON_WM_DESTROY()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// ATP_GraphicDlg message handlers
BOOL ATP_GraphicDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
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, &m_dfYMinValue, 1);
//arg = 100.0F;
PEvset(m_hPE, PEP_fMANUALMAXY, &m_dfYMaxValue, 1);
// Set Manual X scale //
PEnset(m_hPE, PEP_nMANUALSCALECONTROLX, PEMSC_MINMAX);
///arg = 1.0F;
PEvset(m_hPE, PEP_fMANUALMINX, &m_dfXMinValue, 1);
//arg = 100;
PEvset(m_hPE, PEP_fMANUALMAXX, &m_dfXMaxValue, 1);
// Clear out default data //
float m_dfXData;
float m_dfYData;
for(int i=0;i<m_XData.GetCount();i++)
{
m_dfXData=m_XData.GetAt(m_XData.FindIndex(i));
m_dfYData=m_YData.GetAt(m_YData.FindIndex(i));
PEvsetcellEx(m_hPE, PEP_faXDATA, 0, i, &m_dfXData);
PEvsetcellEx(m_hPE, PEP_faYDATA, 0, i, &m_dfYData);
}
int nTmpStyle;
nTmpStyle = PELT_THINSOLID;
PEvsetcell(m_hPE, PEP_naSUBSETLINETYPES, 0, &nTmpStyle);
// Set Various Other Properties ///
PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE);
PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_MEDIUM_INSET);
PEszset(m_hPE, PEP_szMAINTITLE, m_szMainTitle);
PEszset(m_hPE, PEP_szSUBTITLE, m_szSubTitle);
PEszset(m_hPE, PEP_szYAXISLABEL, m_szYLabel);
PEszset(m_hPE, PEP_szXAXISLABEL, m_szXLabel);
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);
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);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void ATP_GraphicDlg::OnDestroy()
{
CDialog::OnDestroy();
// TODO: Add your message handler code here
if(m_hPE)
{
PEdestroy(m_hPE);
Invalidate();
}
//clear the data for drawing
while(m_XData.GetHeadPosition()!=NULL)
m_XData.RemoveHead();
while(m_YData.GetHeadPosition()!=NULL)
m_YData.RemoveHead();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -