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); 
 
} 
*/