16,472
社区成员
发帖
与我相关
我的任务
分享
void CCsvPaintView::OnPaint()
{
CPaintDC dc(this); // device context for painting
int nPicLength = 450;
int nPicHeight = 100;
int nPicVelHeight = 102;
int nPosRow = 5;
CWnd *pWndPos = GetDlgItem(IDC_PosPic);
CDC *pdcPos = pWndPos->GetDC();
pWndPos->SetWindowPos(NULL,0,0,nPicLength,nPicHeight,SWP_NOMOVE|SWP_NOREDRAW);
for(int i = 1; i<nPosRow;i++)
{
pdcPos->MoveTo(0,nPicHeight/nPosRow*i-1);
pdcPos->LineTo(nPicLength- 1,nPicHeight/nPosRow*i-1);
}
for(int i = 1;i<6;i++)
{
pdcPos->MoveTo(nPicLength-1,nPicHeight/6*i);
pdcPos->LineTo(nPicLength-5,nPicHeight/6*i);
}
int nVelRow = 6;
CWnd *pWndVel = GetDlgItem(IDC_VelPic);
pWndVel->SetWindowPos(NULL,0,0,nPicLength,nPicVelHeight,SWP_NOMOVE|SWP_NOREDRAW);
CDC *pdcVel = pWndVel->GetDC();
for(int i = 1; i<nVelRow;i++)
{
pdcVel->MoveTo(0,nPicVelHeight/nVelRow*i-1);
pdcVel->LineTo(nPicLength- 1,nPicVelHeight/nVelRow*i-1);
}
int nAccRow = 5;
CWnd *pWndAcc = GetDlgItem(IDC_AccPic);
CDC *pdcAcc = pWndAcc->GetDC();
pWndAcc->SetWindowPos(NULL,0,0,nPicLength,nPicHeight,SWP_NOMOVE|SWP_NOREDRAW);
for(int i = 1; i<nAccRow;i++)
{
pdcAcc->MoveTo(0,nPicHeight/nAccRow*i-1);
pdcAcc->LineTo(nPicLength- 1,nPicHeight/nAccRow*i-1);
}
for(int i = 1;i<6;i++)
{
pdcAcc->MoveTo(nPicLength-1,nPicHeight/6*i);
pdcAcc->LineTo(nPicLength-5,nPicHeight/6*i);
}
DoDrawPos();
}
void CCsvPaintView::DoDrawPos()
{
//USES_CONVERSION;
CPaintDC dc(this);
CDC *pdc = GetDlgItem(IDC_PosPic)->GetDC();
CString strTimeMin;
CString strTimeMax;
CString strPosMin;
CString strPosMax;
int nTimeMin=0;
int nTimeMax=0;
int nPosMin=0;
int nPosMax=0;
GetDlgItemText(IDC_Time_Pos_Min,strTimeMin);
GetDlgItemText(IDC_Time_Pos_Max,strTimeMax);
GetDlgItemText(IDC_PosMin,strPosMin);
GetDlgItemText(IDC_PosMax,strPosMax);
nTimeMin = atoi(strTimeMin);
nTimeMax = atoi(strTimeMax);
nPosMin = atoi(strPosMin);
nPosMax = atoi(strPosMax);
int nPeriod = GetDocument()->GetPeriod();
int nStart =0;
int nEnd =0;
nStart = nTimeMin*1000/nPeriod;
nEnd = nTimeMax*1000/nPeriod;
for(int i = nStart;i<nEnd;i++)
{
if(i>=m_vActPos.size())
{
break;
}
int nActPosVal = m_vActPos[i];
if(nActPosVal>nPosMax || nActPosVal < nPosMin)
{
continue;
}
int nTransPicPos = (nPosMax-nActPosVal)*100/*Height*//(nPosMax-nPosMin);
//int nPosTime = nStart;
int nTransPicTime = (i-nStart)*450/(nEnd-nStart);
//if(nTransPicTime != 0)
//{
// break;
//}
//pdc->SetPixel(nTransPicTime,nTransPicPos,RGB(255,0,0));
HPEN hp;
hp= CreatePen(0,1,RGB(0,0,255));
pdc->SelectObject(hp);
pdc->LineTo(nTransPicTime,nTransPicPos);
}
}