⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 resualttextview.cpp

📁 BP神经网络程序
💻 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 + -