Circle.cpp
上传用户:popouu88
上传日期:2013-02-11
资源大小:2894k
文件大小:1k
源码类别:

IP电话/视频会议

开发平台:

Visual C++

  1. // Circle.cpp: implementation of the CCircle class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "Circle.h"
  6. #ifdef _DEBUG
  7. #undef THIS_FILE
  8. static char THIS_FILE[]=__FILE__;
  9. #define new DEBUG_NEW
  10. #endif
  11. //////////////////////////////////////////////////////////////////////
  12. // Construction/Destruction
  13. //////////////////////////////////////////////////////////////////////
  14. CCircle::CCircle( CDrawView * view ) : CDraw( view )
  15. {
  16. this->type = CIRCLE;
  17. }
  18. CCircle::~CCircle()
  19. {
  20. }
  21. void CCircle::MouseMove( UINT nFlags , CPoint point )
  22. {
  23. if( nFlags & MK_SHIFT )
  24. {    //计算最小的边
  25. int min = min( abs( point.x - this->start.x ) , abs( point.y - this->start.y ) );
  26. //计算最小的矩形
  27. point.x = this->start.x + ( point.x > this->start.x ? 1 : -1 ) * min;
  28. point.y = this->start.y + ( point.y > this->start.y ? 1 : -1 ) * min;
  29. }
  30. CDraw::MouseMove( nFlags , point );
  31. }
  32. CDC * CCircle::Draw( CDC * pDC )
  33. {
  34. pDC = CDraw::Draw( pDC );
  35. if( pDC )
  36. {
  37. CRect rc( this->start , this->end );
  38. rc.NormalizeRect( );
  39. pDC->Ellipse( rc );
  40. }
  41. return pDC;
  42. }