www.pudn.com > Grass.rar > GrassView.cpp


// GrassView.cpp : implementation of the CGrassView class 
// 
 
#include "stdafx.h" 
#include "Grass.h" 
 
#include "GrassDoc.h" 
#include "GrassView.h" 
#include "FGrass.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CGrassView 
 
IMPLEMENT_DYNCREATE(CGrassView, CView) 
 
BEGIN_MESSAGE_MAP(CGrassView, CView) 
	//{{AFX_MSG_MAP(CGrassView) 
	ON_WM_CREATE() 
	ON_WM_KEYDOWN() 
	ON_WM_ERASEBKGND() 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CGrassView construction/destruction 
 
CGrassView::CGrassView() 
{ 
	m_pGrass=new CFGrass(); 
	m_nMaxx=m_nMaxy=500; 
	m_nCh='c'; 
} 
 
CGrassView::~CGrassView() 
{ 
	delete m_pGrass; 
} 
 
BOOL CGrassView::PreCreateWindow(CREATESTRUCT& cs) 
{ 
	// TODO: Modify the Window class or styles here by modifying 
	//  the CREATESTRUCT cs 
 
	return CView::PreCreateWindow(cs); 
} 
 
///////////////////////////////////////////////////////////////////////////// 
// CGrassView drawing 
 
void CGrassView::OnDraw(CDC* pDC) 
{ 
	CPen pen(PS_SOLID,1,RGB(0,255,0)); 
	CPen *pOld; 
	pOld=pDC->SelectObject(&pen); 
	m_pGrass->Draw(pDC,m_nCh); 
	pDC->SelectObject(pOld); 
} 
 
///////////////////////////////////////////////////////////////////////////// 
// CGrassView diagnostics 
 
#ifdef _DEBUG 
void CGrassView::AssertValid() const 
{ 
	CView::AssertValid(); 
} 
 
void CGrassView::Dump(CDumpContext& dc) const 
{ 
	CView::Dump(dc); 
} 
 
CGrassDoc* CGrassView::GetDocument() // non-debug version is inline 
{ 
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CGrassDoc))); 
	return (CGrassDoc*)m_pDocument; 
} 
#endif //_DEBUG 
 
///////////////////////////////////////////////////////////////////////////// 
// CGrassView message handlers 
 
int CGrassView::OnCreate(LPCREATESTRUCT lpCreateStruct)  
{ 
	if (CView::OnCreate(lpCreateStruct) == -1) 
		return -1; 
	 
	// TODO: Add your specialized creation code here 
	m_pGrass->Create(100,5,m_nMaxx,m_nMaxy); 
	return 0; 
} 
 
void CGrassView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)  
{ 
	CView::OnKeyDown(nChar, nRepCnt, nFlags); 
	m_nCh=nChar; 
	Invalidate(); 
} 
 
BOOL CGrassView::OnEraseBkgnd(CDC* pDC)  
{ 
	CBrush Brush(RGB(0,0,0)); 
	CBrush* pOldBrush=pDC->SelectObject(&Brush); 
	CRect rcClip; 
	pDC->GetClipBox (&rcClip); 
	pDC->PatBlt (rcClip.left , rcClip.top , rcClip.Width ( ) , rcClip.Height( ) , PATCOPY ); 
	pDC->SelectObject (pOldBrush ); 
 
	return TRUE; 
}