www.pudn.com > PressMonitor_q.zip > 3DMeterCtrl.h


#if !defined(AFX_3DMETERCTRL_H__C84783CA_4358_11D4_9F64_D07E4CC1E805__INCLUDED_) 
#define AFX_3DMETERCTRL_H__C84783CA_4358_11D4_9F64_D07E4CC1E805__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
// 3DMeterCtrl.h : header file 
// 
 
#ifndef ROUND 
#define ROUND(x) (int)((x) + 0.5 - (double)((x) < 0)) 
#endif 
 
 
///////////////////////////////////////////////////////////////////////////// 
// C3DMeterCtrl window 
 
class C3DMeterCtrl : public CStatic 
{ 
// Construction 
public: 
	C3DMeterCtrl(); 
 
// Attributes 
protected: 
	int m_nMeterCX ; 
	int m_nMeterCY ; 
	int m_nBottomRadius ; 
	int m_nTopRadius ; 
	int m_nFrameWidth; 
 
	double m_dStartAngleRad; 
	double m_dEndAngleRad; 
	double m_dTickAngleRad; 
	int    m_nStartAngleDeg; 
	int	   m_nEndAngleDeg; 
	int	   m_nTickAngleDeg; 
 
	int    m_nScaleHeight; 
	int    m_nUnitHeight; 
	int    m_nValueHeight; 
 
	CRect m_rectCtrl ; 
	CRect m_rectValue ; 
	CRect m_rectPane; 
 
	COLORREF m_crWindow ; 
	COLORREF m_crLight; 
	COLORREF m_crHighlight ; 
	COLORREF m_crShadow ; 
	COLORREF m_crDkShadow; 
	COLORREF m_crButton ; 
	COLORREF m_crText ; 
	COLORREF m_crSectorStart; 
	COLORREF m_crSectorMiddle; 
	COLORREF m_crSectorEnd; 
	COLORREF m_crSectorFrame; 
	COLORREF m_crFrame; 
	COLORREF m_crUnits; 
	COLORREF m_crValueBack; 
	COLORREF m_crValue; 
	COLORREF m_crScale; 
	COLORREF m_crMeterFace; 
	COLORREF m_crMeterBack; 
	COLORREF m_crRuler; 
 
	CDC m_dcBackground ; 
 
	CBitmap *m_pBitmapOldBackground ; 
	CBitmap m_bitmapBackground ; 
 
public: 
	int m_nScaleDecimals ; 
	int m_nValueDecimals ; 
 
	double m_dCurrentValue ; 
	double m_dMaxValue ; 
	double m_dMinValue ; 
 
	COLORREF m_crNeedle ; 
	CString m_strUnits ; 
	 
// Operations 
public: 
	void UpdateNeedle(double dValue) ; 
	void ReconstructControl() ; 
	void SetRange(double dMin, double dMax) ; 
	void SetScaleDecimals(int nDecimals) ; 
	void SetValueDecimals(int nDecimals) ; 
	void SetUnits(CString &strUnits) ; 
	void SetNeedleColor (COLORREF crNeedle) ; 
	 
// Overrides 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(C3DMeterCtrl) 
	//}}AFX_VIRTUAL 
 
// Implementation 
public: 
	void DrawArc(CDC *pDC,CRect& rect,CPoint ptStart,CPoint ptEnd,COLORREF clr = RGB(0,0,0)); 
	void DrawColorCirque(CDC *pDC); 
	void PaintGradiantCirque(CDC *pDC, int nRadTop,int nRadBottom,COLORREF clrFrom, COLORREF clrTo = RGB(255,255,255), BOOL ascend = true); 
	BOOL Initialize(); 
	BOOL ReCalculating(); 
	void DrawUnit(CDC *pDC); 
	void DrawScale(CDC *pDC); 
	void DrawRuler(CDC *pDC); 
	void DrawFrame(CDC *pDC); 
	void DrawNeedle(CDC *pDC) ; 
	void DrawValue(CDC *pDC) ; 
	virtual ~C3DMeterCtrl(); 
 
	// Generated message map functions 
protected: 
	//{{AFX_MSG(C3DMeterCtrl) 
	afx_msg void OnPaint(); 
	afx_msg void OnSize(UINT nType, int cx, int cy); 
	afx_msg BOOL OnEraseBkgnd(CDC* pDC); 
	//}}AFX_MSG 
 
	DECLARE_MESSAGE_MAP() 
}; 
 
///////////////////////////////////////////////////////////////////////////// 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Visual C++ will insert additional declarations immediately before the previous line. 
 
#endif // !defined(AFX_3DMETERCTRL_H__C84783CA_4358_11D4_9F64_D07E4CC1E805__INCLUDED_)