PieChartCtrl.h
上传用户:tianjwyx
上传日期:2007-01-13
资源大小:813k
文件大小:3k
源码类别:

操作系统开发

开发平台:

Visual C++

  1. #if !defined(AFX_PIECHARTCTRL_H__31DF2BE2_22B5_11D2_813B_A9FDC8C0FA85__INCLUDED_)
  2. #define AFX_PIECHARTCTRL_H__31DF2BE2_22B5_11D2_813B_A9FDC8C0FA85__INCLUDED_
  3. #if _MSC_VER >= 1000
  4. #pragma once
  5. #endif // _MSC_VER >= 1000
  6. // PieChartCtrl.h : header file
  7. //
  8. // Written by Yuheng Zhao (yuheng@ministars.com)
  9. // Copyright (c) 1998.
  10. //
  11. // This code may be used in compiled form in any way you desire. This
  12. // file may be redistributed unmodified by any means PROVIDING it is 
  13. // not sold for profit without the authors written consent, and 
  14. // providing that this notice and the authors name is included. If 
  15. // the source code in  this file is used in any commercial application 
  16. // then a simple email would be nice.
  17. //
  18. // This file is provided "as is" with no expressed or implied warranty.
  19. // The author accepts no liability if it causes any damage whatsoever.
  20. // It's free - so you get what you pay for.
  21. #include <afxtempl.h>
  22. // PieChartCtrl.h : header file
  23. //
  24. /////////////////////////////////////////////////////////////////////////////
  25. // CPieChartCtrl window
  26. class CPieChartPiece : public CObject
  27. {
  28. public:
  29. CPieChartPiece() {;}
  30. ~CPieChartPiece() {if (m_brushBack.m_hObject) m_brushBack.DeleteObject();}
  31. COLORREF m_colorBack;
  32. COLORREF m_colorText;
  33. CBrush m_brushBack;
  34. int m_nAngle;
  35. CString m_strInfo;
  36. };
  37. typedef CTypedPtrArray <CObArray, CPieChartPiece*> CChartPieceArray;
  38. class CPieChartCtrl : public CWnd
  39. {
  40. // Construction
  41. public:
  42. CPieChartCtrl();
  43. // Attributes
  44. public:
  45. int m_nStartAngle; // 0-359
  46. COLORREF m_colorDefault;
  47. COLORREF m_colorLine;
  48. CChartPieceArray m_chartPieces;
  49. // Operations
  50. public:
  51. // Overrides
  52. // ClassWizard generated virtual function overrides
  53. //{{AFX_VIRTUAL(CPieChartCtrl)
  54. //}}AFX_VIRTUAL
  55. // Implementation
  56. public:
  57. int m_nTitleHeight;
  58. CFont m_fontTitle;
  59. CFont m_fontInfo;
  60. void SetTitle(const CString& str);
  61. CString m_strTitle;
  62. void GetItemColor(int i, COLORREF& color);
  63. void Reset();
  64. CPoint m_ptOldPt;
  65. BOOL m_bCaptured;
  66. void CountPoint(int nAngle, CPoint& pt, BOOL bPercent = FALSE);
  67. BOOL AddPiece(COLORREF colorBack, COLORREF colorText,
  68. int nAngle, const CString& str = _T(""));
  69. void RecalcRect();
  70. CRect m_rectChart;
  71. static BOOL RegisterWndClass(HINSTANCE hInstance);
  72. virtual ~CPieChartCtrl();
  73. // Generated message map functions
  74. protected:
  75. //{{AFX_MSG(CPieChartCtrl)
  76. afx_msg void OnPaint();
  77. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  78. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  79. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  80. afx_msg void OnSize(UINT nType, int cx, int cy);
  81. //}}AFX_MSG
  82. DECLARE_MESSAGE_MAP()
  83. };
  84. /////////////////////////////////////////////////////////////////////////////
  85. //{{AFX_INSERT_LOCATION}}
  86. // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
  87. #endif // !defined(AFX_PIECHARTCTRL_H__31DF2BE2_22B5_11D2_813B_A9FDC8C0FA85__INCLUDED_)