www.pudn.com > PressMonitor_q.zip > PressRealView.cpp
// PressRealView.cpp : implementation file
//
#include "stdafx.h"
#include "Monitor.h"
#include "PressRealView.h"
#include "MonitorDoc.h"
#include "Hint.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
static COLORREF tmpColor[]=
{
RGB(0,0,0), RGB(128,0,255),RGB(100,0,100), RGB(190,0,90),
RGB(170,255,0),RGB(10,220,10),RGB(0,0,255)
};
/////////////////////////////////////////////////////////////////////////////
// CPressRealView
IMPLEMENT_DYNCREATE(CPressRealView, CFormView)
CPressRealView::CPressRealView()
: CFormView(CPressRealView::IDD)
{
//{{AFX_DATA_INIT(CPressRealView)
//}}AFX_DATA_INIT
}
CPressRealView::~CPressRealView()
{
}
void CPressRealView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPressRealView)
// DDX_Control(pDX, IDC_CHECK7, m_btn7);
DDX_Control(pDX, IDC_CHECK6, m_btn6);
DDX_Control(pDX, IDC_CHECK5, m_btn5);
DDX_Control(pDX, IDC_CHECK4, m_btn4);
DDX_Control(pDX, IDC_CHECK3, m_btn3);
DDX_Control(pDX, IDC_CHECK2, m_btn2);
DDX_Control(pDX, IDC_CHECK1, m_btn1);
DDX_Control(pDX, IDC_CHECK0, m_btn0);
DDX_Control(pDX, IDC_TREND, m_3DTrend);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPressRealView, CFormView)
//{{AFX_MSG_MAP(CPressRealView)
ON_BN_CLICKED(IDC_CHECK0, OnCheck0)
ON_BN_CLICKED(IDC_CHECK1, OnCheck1)
ON_BN_CLICKED(IDC_CHECK2, OnCheck2)
ON_BN_CLICKED(IDC_CHECK3, OnCheck3)
ON_BN_CLICKED(IDC_CHECK4, OnCheck4)
ON_BN_CLICKED(IDC_CHECK5, OnCheck5)
ON_BN_CLICKED(IDC_CHECK6, OnCheck6)
//}}AFX_MSG_MAP
// ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
// ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
// ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPressRealView diagnostics
#ifdef _DEBUG
void CPressRealView::AssertValid() const
{
CFormView::AssertValid();
}
void CPressRealView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CPressRealView message handlers
void CPressRealView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
CMonitorDoc *pDoc = (CMonitorDoc*) GetDocument();
pDoc->m_bUpdateView=true;
m_btn0.SetShade(SHS_DIAGSHADE,8,10,5,RGB(255,55,55));
m_btn1.SetShade(SHS_DIAGSHADE,8,10,5,RGB(255,55,55));
m_btn2.SetShade(SHS_DIAGSHADE,8,10,5,RGB(255,55,55));
m_btn3.SetShade(SHS_DIAGSHADE,8,10,5,RGB(255,55,55));
m_btn4.SetShade(SHS_DIAGSHADE,8,10,5,RGB(255,55,55));
m_btn5.SetShade(SHS_DIAGSHADE,8,10,5,RGB(255,55,55));
m_btn6.SetShade(SHS_DIAGSHADE,8,10,5,RGB(255,55,55));
// m_btn7.SetShade(SHS_DIAGSHADE,8,10,5,RGB(255,55,55));
m_btn0.SetTextColor(tmpColor[0]);
m_btn1.SetTextColor(tmpColor[1]);
m_btn2.SetTextColor(tmpColor[2]);
m_btn3.SetTextColor(tmpColor[3]);
m_btn4.SetTextColor(tmpColor[4]);
m_btn5.SetTextColor(tmpColor[5]);
m_btn6.SetTextColor(tmpColor[6]);
// m_btn7.SetTextColor(tmpColor[7]);
Scale scale[3];
scale[0].MaxiValue=10;
scale[0].MiniValue=0;
scale[0].nStyle=SCALE_LEFT;
scale[0].strUnit=CURVE_UNIT_V;
scale[0].clr=RGB(255,0,0);
scale[1].MaxiValue=1000;
scale[1].MiniValue=0;
scale[1].nStyle=SCALE_CENTER;
scale[1].strUnit=CURVE_UNIT_MM;
scale[1].clr=RGB(128,0,64);
scale[2].MaxiValue=32;
scale[2].MiniValue=0;
scale[2].nStyle=SCALE_RIGHT;
scale[2].strUnit=CURVE_UNIT_MPA;
scale[2].clr=RGB(128,0,255);
if(!m_3DTrend.Initialize(scale))
return ;
m_3DTrend.AddCurve("主系统压力",tmpColor[0],CURVE_UNIT_MPA,2);
m_3DTrend.AddCurve("回程缸压力",tmpColor[1],CURVE_UNIT_MPA,2);
m_3DTrend.AddCurve("主缸压力",tmpColor[2],CURVE_UNIT_MPA,2);
m_3DTrend.AddCurve("压机位移",tmpColor[3],CURVE_UNIT_MM,2);
m_3DTrend.AddCurve("V2",tmpColor[4],CURVE_UNIT_V);
m_3DTrend.AddCurve("V3",tmpColor[5],CURVE_UNIT_V);
m_3DTrend.AddCurve("XV1",tmpColor[6],CURVE_UNIT_V);
// m_3DTrend.AddCurve("A_YA6",tmpColor[7],CURVE_UNIT_V);
CTime time;
time=time.GetCurrentTime();
for(int i=0;im_DataReal;
CTime time;
time=time.GetCurrentTime();
m_3DTrend.m_curveArray.GetAt(0)->ShiftData(pDataReal->Data_Real[SYS_PRE],time);
m_3DTrend.m_curveArray.GetAt(1)->ShiftData(pDataReal->Data_Real[RETURNCYLINDER_PRE],time);
m_3DTrend.m_curveArray.GetAt(2)->ShiftData(pDataReal->Data_Real[MAINCYLINDER_PRE],time);
m_3DTrend.m_curveArray.GetAt(3)->ShiftData(pDataReal->Data_Real[FORGING_POS],time);
m_3DTrend.m_curveArray.GetAt(4)->ShiftData(pDataReal->AOut.A_Ya2,time);
m_3DTrend.m_curveArray.GetAt(5)->ShiftData(pDataReal->AOut.A_Ya3,time);
m_3DTrend.m_curveArray.GetAt(6)->ShiftData(pDataReal->AOut.A_Ya6,time);
m_3DTrend.RefreshWindow();
}
void CPressRealView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
switch(lHint)
{
case HINT_DATA_RENEW:
UpdateControl();
break;
}
}
void CPressRealView::OnCheck0()
{
if(!m_3DTrend.GetCurveDispState(0))
{
m_3DTrend.HideCurve(0);
}
else
{
m_3DTrend.ShowCurve(0);
}
m_3DTrend.RefreshWindow();
}
void CPressRealView::OnCheck1()
{
if(!m_3DTrend.GetCurveDispState(1))
{
m_3DTrend.HideCurve(1);
}
else
{
m_3DTrend.ShowCurve(1);
}
m_3DTrend.RefreshWindow();
}
void CPressRealView::OnCheck2()
{
if(!m_3DTrend.GetCurveDispState(2))
{
m_3DTrend.HideCurve(2);
}
else
{
m_3DTrend.ShowCurve(2);
}
m_3DTrend.RefreshWindow();
}
void CPressRealView::OnCheck3()
{
if(!m_3DTrend.GetCurveDispState(3))
{
m_3DTrend.HideCurve(3);
}
else
{
m_3DTrend.ShowCurve(3);
}
m_3DTrend.RefreshWindow();
}
void CPressRealView::OnCheck4()
{
if(!m_3DTrend.GetCurveDispState(4))
{
m_3DTrend.HideCurve(4);
}
else
{
m_3DTrend.ShowCurve(4);
}
m_3DTrend.RefreshWindow();
}
void CPressRealView::OnCheck5()
{
if(!m_3DTrend.GetCurveDispState(5))
{
m_3DTrend.HideCurve(5);
}
else
{
m_3DTrend.ShowCurve(5);
}
m_3DTrend.RefreshWindow();
}
void CPressRealView::OnCheck6()
{
if(!m_3DTrend.GetCurveDispState(6))
{
m_3DTrend.HideCurve(6);
}
else
{
m_3DTrend.ShowCurve(6);
}
m_3DTrend.RefreshWindow();
}
/*
//打印及打印预览
BOOL CPressRealView::OnPreparePrinting(CPrintInfo* pInfo)
{
// TODO: call DoPreparePrinting to invoke the Print dialog box
CMonitorDoc *pDoc = (CMonitorDoc*) GetDocument();
pDoc->m_bUpdateView=false;
pInfo->SetMaxPage(1);
return DoPreparePrinting(pInfo);
}
void CPressRealView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
// TODO: Add your specialized code here and/or call the base class
}
void CPressRealView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo)
{
// TODO: Add your specialized code here and/or call the base class
CMonitorDoc *pDoc = (CMonitorDoc*) GetDocument();
pDoc->m_bUpdateView=true;
m_3DTrend.ReCalculating();
}
void CPressRealView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
// TODO: Add your specialized code here and/or call the base class
CMonitorDoc* pDoc=(CMonitorDoc*)GetDocument();
m_rectPrint=pInfo->m_rectDraw;
m_rectTitle.left=m_rectPrint.left;
m_rectTitle.right=m_rectPrint.right;
m_rectTitle.top=m_rectPrint.top;
m_rectTitle.bottom=m_rectPrint.top+m_rectPrint.Height()/20;
m_rectFooter.left=m_rectPrint.left;
m_rectFooter.right=m_rectPrint.right;
m_rectFooter.top=m_rectPrint.bottom-m_rectPrint.Height()/30;
m_rectFooter.bottom=m_rectPrint.bottom;
if(m_rectPrint.Width()>m_rectPrint.Height()){
m_rectChart.left=m_rectPrint.left+m_rectPrint.Width()/20;
m_rectChart.right=m_rectPrint.right-m_rectPrint.Width()/20;
m_rectChart.top=m_rectTitle.bottom+m_rectPrint.Height()/20;
m_rectChart.bottom=m_rectFooter.top-m_rectPrint.Height()/20;
}
else{
m_rectChart.left=m_rectPrint.left;
m_rectChart.right=m_rectPrint.right;
m_rectChart.top=m_rectTitle.bottom+m_rectPrint.Height()/5;
m_rectChart.bottom=m_rectFooter.top-m_rectPrint.Height()/5;
}
pDC->Rectangle(m_rectPrint);
pDC->Rectangle(m_rectTitle);
pDC->Rectangle(m_rectFooter);
PrintPageHeader(pDC);
m_3DTrend.OnPrint(pDC,m_rectChart);
PrintPageFooter(pDC);
}
void CPressRealView::PrintPageHeader(CDC *pDC)
{
CFont fontTitle;
fontTitle.CreateFont(144,0,0,0,400,FALSE,FALSE,
0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
DEFAULT_PITCH|FF_MODERN,"楷体_GB2312");
CFont* pOldFont=(CFont*)pDC->SelectObject(&fontTitle);
pDC->SetTextColor(GetSysColor(COLOR_WINDOWTEXT));
pDC->DrawText("压机实时曲线图",m_rectTitle,DT_CENTER|DT_VCENTER|DT_SINGLELINE) ;
pDC->SelectObject(pOldFont);
}
void CPressRealView::PrintPageFooter(CDC *pDC)
{
CFont fontFooter;
CRect rectTemp;
CString strTime;
CTime time;
time=m_3DTrend.GetCurveDataTime(0,0);
fontFooter.CreateFont(72,0,0,0,400,FALSE,FALSE,
0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
DEFAULT_PITCH|FF_MODERN,"宋体");
CFont* pOldFont=(CFont*)pDC->SelectObject(&fontFooter);
pDC->SetTextColor(GetSysColor(COLOR_WINDOWTEXT));
strTime.Format("%d年%d月%d日(%d:%d:%d)",time.GetYear(),
time.GetMonth(),time.GetDay(),
time.GetHour(),time.GetMinute(),
time.GetSecond());
rectTemp=m_rectFooter;
rectTemp.right=m_rectFooter.right-100;
pDC->DrawText(strTime,rectTemp,DT_RIGHT|DT_VCENTER|DT_SINGLELINE) ;
pDC->SelectObject(pOldFont);
}
*/