Spinner.cpp
上传用户:z_mail1980
上传日期:2007-06-01
资源大小:647k
文件大小:2k
源码类别:

SNMP编程

开发平台:

Visual C++

  1. // Spinner.cpp: implementation of the CSpinner class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include <math.h>
  6. #include "Tasking.h"
  7. #include "Spinner.h"
  8. #ifdef _DEBUG
  9. #undef THIS_FILE
  10. static char THIS_FILE[]=__FILE__;
  11. #define new DEBUG_NEW
  12. #endif
  13.  
  14. COLORREF CSpinner::m_crColors[8]={
  15. RGB(0,0,0),
  16. RGB(0,0,255),
  17. RGB(0,255,0),
  18. RGB(0,255,255),
  19. RGB(255,0,0),
  20. RGB(255,0,255),
  21. RGB(0,0,0),
  22. RGB(255,255,255),
  23. };
  24. //////////////////////////////////////////////////////////////////////
  25. // Construction/Destruction
  26. //////////////////////////////////////////////////////////////////////
  27. CSpinner::CSpinner()
  28. {
  29. m_iRadius=0;
  30. m_nMinute=0;
  31. m_crColor=0;
  32. m_pViewWnd=NULL;
  33. m_bContinue=NULL;
  34. }
  35. CSpinner::~CSpinner()
  36. {
  37. }
  38. void CSpinner::Draw()
  39. {
  40. CDC *pDC=m_pViewWnd->GetDC();
  41. pDC->SetMapMode(MM_LOENGLISH);
  42. CPoint org=m_pCenter;
  43. CPoint pStartPoint;
  44. pStartPoint.x=(m_iRadius/2);
  45. pStartPoint.y=(m_iRadius/2);
  46. org.x=m_pCenter.x+(m_iRadius/2);
  47. org.y=m_pCenter.y+m_iRadius;
  48. pDC->SetViewportOrg(org.x,org.y);
  49. CPoint pEndPoint;
  50. double nRadians=(double)(m_nMinute*6)*0.017453292;
  51. pEndPoint.x=(int)(m_iRadius*sin(nRadians));
  52. pEndPoint.y=(int)(m_iRadius*cos(nRadians));
  53. CPen pen(PS_SOLID,0,m_crColors[m_crColor]);
  54. CPen *pOldPen=pDC->SelectObject(&pen);
  55. pDC->MoveTo(pEndPoint);
  56. pDC->LineTo(pStartPoint);
  57. pDC->SelectObject(&pOldPen);
  58. m_pViewWnd->ReleaseDC(pDC);
  59. if(++m_nMinute==60){
  60. m_nMinute=0;
  61. if(++m_crColor==8){
  62. m_crColor=0;
  63. }
  64. }
  65. }