www.pudn.com > OSDemo.rar > PieChartCtrl.h


#if !defined(AFX_PIECHARTCTRL_H__31DF2BE2_22B5_11D2_813B_A9FDC8C0FA85__INCLUDED_) 
#define AFX_PIECHARTCTRL_H__31DF2BE2_22B5_11D2_813B_A9FDC8C0FA85__INCLUDED_ 
 
#if _MSC_VER >= 1000 
#pragma once 
#endif // _MSC_VER >= 1000 
 
// PieChartCtrl.h : header file 
// 
// Written by Yuheng Zhao (yuheng@ministars.com) 
// Copyright (c) 1998. 
// 
// This code may be used in compiled form in any way you desire. This 
// file may be redistributed unmodified by any means PROVIDING it is  
// not sold for profit without the authors written consent, and  
// providing that this notice and the authors name is included. If  
// the source code in  this file is used in any commercial application  
// then a simple email would be nice. 
// 
// This file is provided "as is" with no expressed or implied warranty. 
// The author accepts no liability if it causes any damage whatsoever. 
// It's free - so you get what you pay for. 
 
#include  
// PieChartCtrl.h : header file 
// 
 
///////////////////////////////////////////////////////////////////////////// 
// CPieChartCtrl window 
class CPieChartPiece : public CObject 
{ 
public: 
	CPieChartPiece() {;} 
	~CPieChartPiece() {if (m_brushBack.m_hObject) m_brushBack.DeleteObject();} 
 
	COLORREF m_colorBack; 
	COLORREF m_colorText; 
	CBrush m_brushBack;	 
	int m_nAngle; 
	CString m_strInfo; 
}; 
 
typedef CTypedPtrArray  CChartPieceArray; 
 
class CPieChartCtrl : public CWnd 
{ 
// Construction 
public: 
	CPieChartCtrl(); 
 
// Attributes 
public: 
	int m_nStartAngle; // 0-359 
	COLORREF m_colorDefault; 
	COLORREF m_colorLine; 
 
	CChartPieceArray m_chartPieces; 
 
// Operations 
public: 
 
// Overrides 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(CPieChartCtrl) 
	//}}AFX_VIRTUAL 
 
// Implementation 
public: 
	int m_nTitleHeight; 
	CFont m_fontTitle; 
	CFont m_fontInfo; 
	void SetTitle(const CString& str); 
	CString m_strTitle; 
	void GetItemColor(int i, COLORREF& color); 
	void Reset(); 
	CPoint m_ptOldPt; 
	BOOL m_bCaptured; 
	void CountPoint(int nAngle, CPoint& pt, BOOL bPercent = FALSE); 
	BOOL AddPiece(COLORREF colorBack, COLORREF colorText, 
		int nAngle, const CString& str = _T("")); 
	void RecalcRect(); 
	CRect m_rectChart; 
	static BOOL RegisterWndClass(HINSTANCE hInstance); 
	virtual ~CPieChartCtrl(); 
 
	// Generated message map functions 
protected: 
	//{{AFX_MSG(CPieChartCtrl) 
	afx_msg void OnPaint(); 
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point); 
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point); 
	afx_msg void OnMouseMove(UINT nFlags, CPoint point); 
	afx_msg void OnSize(UINT nType, int cx, int cy); 
	//}}AFX_MSG 
	DECLARE_MESSAGE_MAP() 
}; 
 
///////////////////////////////////////////////////////////////////////////// 
 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Developer Studio will insert additional declarations immediately before the previous line. 
 
#endif // !defined(AFX_PIECHARTCTRL_H__31DF2BE2_22B5_11D2_813B_A9FDC8C0FA85__INCLUDED_)