#include "stdafx.h" #include "virtsquare.h" #define MAXIMUM_SITE 40 //****************************************************************************** // //****************************************************************************** /*virtual*/ void CVirtSquare::Grow(int nE) { if (m_bGrowing) m_nSite += nE; else m_nSite -= nE; if (m_nSite > MAXIMUM_SITE) { m_nSite = MAXIMUM_SITE; m_bGrowing = false; } else if (m_nSite < 0) { m_nSite = 0; m_bGrowing = true; } } //****************************************************************************** // //****************************************************************************** /*virtual*/ void CVirtSquare::Move(LPCRECT pRect) { CVirtPoint::Move(pRect); Grow(3*rand() / RAND_MAX); } //****************************************************************************** // //****************************************************************************** /*virtual*/ void CVirtSquare::Draw(HDC hdc) { HPEN hPen = ::CreatePen(PS_SOLID, 1, RGB(0,0xFF,0)); HPEN hOldPen = (HPEN)::SelectObject(hdc, hPen); ::Rectangle(hdc, m_nX, m_nY, m_nX + m_nSite, m_nY + m_nSite); ::SelectObject(hdc, hOldPen); ::DeleteObject(hPen); }