📄 resualttextview.cpp
字号:
// resualtTextView.cpp : implementation file
//
#include "stdafx.h"
#include "bpnlayerexe.h"
#include "resualtTextView.h"
#include "BpNlayerEXEDoc.h"
#include "DlgProportion.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// resualtTextView
IMPLEMENT_DYNCREATE(resualtTextView, CScrollView)
resualtTextView::resualtTextView()
{
m_pdOrigin=NULL;
m_dProportion=0.5;
}
resualtTextView::~resualtTextView()
{
}
BEGIN_MESSAGE_MAP(resualtTextView, CScrollView)
//{{AFX_MSG_MAP(resualtTextView)
ON_WM_HSCROLL()
ON_WM_VSCROLL()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// resualtTextView drawing
void resualtTextView::OnDraw(CDC* pDC)
{
// TODO: add draw code here
CBpNlayerEXEDoc *pDoc=(CBpNlayerEXEDoc*)GetDocument();
CPoint ScrollToPosition;
RECT rectWnd;
CPen pen(PS_SOLID,2,RGB(255,0,0));
CString StrTemp;
COleVariant colevariant;
double dTemp1,dTemp2;
pDC->SelectObject(pen);
ScrollToPosition=GetScrollPosition();
GetClientRect(&rectWnd);
pDC->MoveTo(ScrollToPosition.x,300);
pDC->LineTo(ScrollToPosition.x,0);
pDC->MoveTo(ScrollToPosition.x,300);
pDC->LineTo(ScrollToPosition.x+rectWnd.right,300);
pen.DeleteObject();
pen.CreatePen(PS_SOLID,1,RGB(200,200,200));
pDC->SelectObject(pen);
for (int i=0;i<(int)(rectWnd.right/50);i++)
{
pDC->MoveTo(((int)(ScrollToPosition.x/50)+1)*50+i*50,300);
pDC->LineTo(((int)(ScrollToPosition.x/50)+1)*50+i*50,0);
StrTemp.Format("%d",((int)(ScrollToPosition.x/50)+1)*50+i*50);
pDC->TextOut(((int)(ScrollToPosition.x/50)+1)*50+i*50,295,StrTemp);
}
for (int i=0;i<9;i++)
{
pDC->MoveTo(ScrollToPosition.x,i*30+30);
pDC->LineTo(ScrollToPosition.x+rectWnd.right,i*30+30);
StrTemp.Format("%d0%%",9-i);
pDC->TextOut(ScrollToPosition.x,i*30+31,StrTemp);
}
StrTemp.Format("%f",m_dProportion);
pDC->TextOut(ScrollToPosition.x,1,StrTemp);
//////////////////////////////////////////////
if (pDoc->m_bDataOk)
{
pen.DeleteObject();
pen.CreatePen(PS_SOLID,1,RGB(0,0,0));
pDC->SelectObject(pen);
pDoc->m_pRsSave->MoveFirst();
pDoc->m_pRsSave->Move(ScrollToPosition.x);
for (int i=0;i<rectWnd.right;i++)
{
for (int j=0;j<pDoc->m_piLayerCapture[pDoc->m_iLayerNum-1];j++)
{
StrTemp.Format("Output%d",j);
pDoc->m_pRsSave->GetFieldValue(StrTemp,colevariant);
dTemp1=colevariant.dblVal;
pDoc->m_pRsSave->MoveNext();
pDoc->m_pRsSave->GetFieldValue(StrTemp,colevariant);
pDoc->m_pRsSave->MovePrev();
dTemp2=colevariant.dblVal;
pDC->MoveTo(ScrollToPosition.x+i,(int)(300-dTemp1*300/m_dProportion));
pDC->LineTo(ScrollToPosition.x+i+1,(int)(300-dTemp2*300/m_dProportion));
}
pDoc->m_pRsSave->MoveNext();
}
}
}
/////////////////////////////////////////////////////////////////////////////
// resualtTextView diagnostics
#ifdef _DEBUG
void resualtTextView::AssertValid() const
{
CScrollView::AssertValid();
}
void resualtTextView::Dump(CDumpContext& dc) const
{
CScrollView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// resualtTextView message handlers
void resualtTextView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
SetScrollSizes(MM_TEXT,CSize(0,310));
}
void resualtTextView::DrawLately(int iStudyTimth,double* pdError)
{
CBpNlayerEXEDoc* pDoc=CBpNlayerEXEDoc::GetDoc();
CClientDC dc(this);
OnPrepareDC(&dc);
CRect rectWnd;
//dc.DPtoLP()
GetClientRect(&rectWnd);
int iPointNum=*(pDoc->m_piLayerCapture+pDoc->m_iLayerNum-1);
CPoint PointTemp1,PointTemp2;
for (int i=0;i<iPointNum;i++)
{
PointTemp1.x=iStudyTimth-1;
PointTemp1.y=(int)(300-*(m_pdOrigin+i)*300/m_dProportion);
PointTemp2.x=iStudyTimth;
PointTemp2.y=(int)(300-*(pdError+i)*300/m_dProportion);
dc.MoveTo(PointTemp1);
dc.LineTo(PointTemp2);
*(m_pdOrigin+i)=*(pdError+i);
}
SetScrollSizes(MM_TEXT,CSize(pDoc->m_pRsSave->GetRecordCount(),310));
//PointTemp1.x=(int)(iStudyTimth/rectWnd.right)*rectWnd.right;
//PointTemp1.y=0;
}
void resualtTextView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
Invalidate();
CScrollView::OnHScroll(nSBCode, nPos, pScrollBar);
}
void resualtTextView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
Invalidate();
CScrollView::OnVScroll(nSBCode, nPos, pScrollBar);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -