#include "stdafx.h" #include "VirtCircle.h" #define MAXIMUM_RADIUS 50 //****************************************************************************** // //****************************************************************************** /*virtual*/ void CVirtCircle::Grow(int nE) { if (m_bGrowing) m_nR += nE; else m_nR -= nE; if (m_nR > MAXIMUM_RADIUS) { m_nR = MAXIMUM_RADIUS; m_bGrowing = false; } else if (m_nR < 0) { m_nR = 0; m_bGrowing = true; } } //****************************************************************************** // //****************************************************************************** /*virtual*/ void CVirtCircle::Move(LPCRECT pRect) { CVirtPoint::Move(pRect); Grow(3*rand() / RAND_MAX); } //****************************************************************************** // //****************************************************************************** /*virtual*/ void CVirtCircle::Draw(HDC hdc) { HPEN hPen = ::CreatePen(PS_SOLID, 1, RGB(0,0,0xFF)); HPEN hOldPen = (HPEN)::SelectObject(hdc, hPen); HBRUSH hOldBrush = (HBRUSH)::SelectObject(hdc, GetStockObject(HOLLOW_BRUSH)); ::Ellipse(hdc, m_nX - m_nR, m_nY - m_nR, m_nX + m_nR, m_nY + m_nR); ::SelectObject(hdc, hOldBrush); ::SelectObject(hdc, hOldPen); ::DeleteObject(hPen); }