adwaveview.cpp
来自「用于数据采集分析的对话框界面」· C++ 代码 · 共 176 行
CPP
176 行
// ADWaveView.cpp : implementation file
//
#include "stdafx.h"
#include "CAITest.h"
#include "ADWaveView.h"
#include "CAITestDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
const int width= 320;
const int high= 180;
extern CCAITestApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CADWaveView
IMPLEMENT_DYNCREATE(CADWaveView, CView)
CADWaveView::CADWaveView()
{
m_Drawflag = false;
//m_xMin=-100;
//m_xMax=100;
//m_size = 200;*/
m_xMin=-180;
m_xMax=540;
m_xMinHeat=-180;
m_xMaxHeat=180;
m_size =theApp.m_Stand.m_DABoard.GetReadSizeWords(); //1950;
//图示标记
m_yTitle[0] = "缸内压力";
m_yTitle[1] = "放热率";
m_yTitle[2] = "压力升高率";
m_yTitle[3] = "质量燃烧";
}
CADWaveView::~CADWaveView()
{
}
BEGIN_MESSAGE_MAP(CADWaveView, CView)
//{{AFX_MSG_MAP(CADWaveView)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CADWaveView drawing
void CADWaveView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: add draw code here
int i= 0;
if (!m_Drawflag)
{
CRect rect;
for(i=0;i<4;i++)
{
//1图
rect.left =20;
rect.top = 10+(i/2)*(10+high);
rect.right = rect.left+width;
rect.bottom=rect.top+high;
m_Graphic[i].Create(pDC,rect,this);
switch (i)
{
case 0:
m_Graphic[i].Initialize(RGB(0, 128, 0),RGB(0,0,0),
RGB(0,255,128),RGB(190,190,190),
"曲轴转角(CA)",m_yTitle[i],m_xMin,m_xMax,0,50);
break;
case 2:
m_Graphic[i].Initialize(RGB(0, 128, 0),RGB(0,0,0),
RGB(0,255,128),RGB(190,190,190),
"曲轴转角(CA)",m_yTitle[i],m_xMin,m_xMax,-1,1);
}
m_Graphic[i].Draw();
//2图
rect.left =rect.left+width+40;
rect.top = rect.top;
rect.right = rect.left+width;
rect.bottom=rect.top+high;
m_Graphic[i+1].Create(pDC,rect,this);
switch (i+1)
{
case 1:
m_Graphic[i+1].Initialize(RGB(0, 128, 0),RGB(0,0,0),
RGB(0,255,128),RGB(190,190,190),
"曲轴转角(CA)",m_yTitle[i+1],m_xMinHeat,m_xMaxHeat,0,100);
break;
case 3:
m_Graphic[i+1].Initialize(RGB(0, 128, 0),RGB(0,0,0),
RGB(0,255,128),RGB(190,190,190),
"曲轴转角(CA)",m_yTitle[i+1],m_xMinHeat,m_xMaxHeat,0,1);
break;
}
m_Graphic[i+1].Draw();
i++;
}
m_Drawflag = true;
}
else
{
CCAITestDoc* pDoc;
pDoc = (CCAITestDoc*)GetDocument();
pDoc->GetADInit(m_IVC,m_P0,
m_TDC,m_TDCoffSet);
int sizeBegin=m_TDC-500,sizeEnd=sizeBegin+2000;
for(i=0;i<4;i++)
{
// 通知数据处理线程,正在绘制波形,
//请不要往DrawBuffer中填充新数据
theApp.m_bDrawing = TRUE;
switch(i){
case 0:
m_Graphic[i].Draw(&pDoc->m_Buffer[i][0],
sizeBegin,sizeEnd);//m_size200
break;
case 1:
m_Graphic[i].Draw(&pDoc->m_Buffer[i][0],
sizeBegin,sizeBegin+1000);//m_size200sizeBegin+360
break;
case 2:
m_Graphic[i].Draw(&pDoc->m_Buffer[i][0],
sizeBegin,sizeEnd);//m_size200
break;
case 3:
m_Graphic[i].Draw(&pDoc->m_Buffer[i][0],
sizeBegin,sizeBegin+1000);//m_size200sizeEnd
break;
}
theApp.m_bDrawing = FALSE;
}
}
}
void CADWaveView::refresh()
{
CWindowDC dc(this);
OnDraw(&dc);
}
/////////////////////////////////////////////////////////////////////////////
// CADWaveView diagnostics
#ifdef _DEBUG
void CADWaveView::AssertValid() const
{
CView::AssertValid();
}
void CADWaveView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CADWaveView message handlers
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?