www.pudn.com > testthermometer.rar > ThermoMeter.h


#ifndef __THERMOMETER_H__ 
#define __THERMOMETER_H__ 
 
#define MAXNAMELENGTH     99 
 
//标示数据位置的滑块 
class CScaleUnit  
{ 
public: 
	CScaleUnit(); 
	~CScaleUnit(); 
 
	inline CRect GetRect() const { return m_rectClient; } 
	inline void SetRect(const CRect rcClient) { m_rectClient = rcClient; } 
	void Draw(CDC *pDC); 
 
private: 
	COLORREF   m_BackColor; 
	CRect      m_rectClient;	 
}; 
 
class CThermoMeter : public CStatic 
{ 
public: 
	CThermoMeter(); 
	virtual ~CThermoMeter(); 
 
	void SetCurrentValue(const double dCurrentValue); 
 
protected: 
	virtual void PreSubclassWindow(); 
	//}}AFX_VIRTUAL 
 
protected: 
	void DrawMeterBackground(CDC *pDC, CRect &rect); 
	void DrawScale(CDC *pDC); 
	CRect GetUnitRect(); 
	//{{AFX_MSG(CThermoMeter) 
	afx_msg void OnPaint(); 
	//}}AFX_MSG 
 
	DECLARE_MESSAGE_MAP() 
 
private: 
	CRect		 m_rectCtrl;				// 控件区域 
	CRect        m_rectScale;               //指针区域 
 
	double		 m_dCurrentValue; 
	double		 m_dMinValue;    
	double		 m_dMaxValue;   
	COLORREF     m_BackColor; 
     
	CDC			 m_dcMeterPlate; 
	CBitmap		 m_bitmapMeterPlate; 
	CBitmap		*m_pbitmapOldMeterPlate; 
 
	int			 m_nTicks;						//大格个数 
	int			 m_nSubTicks;					//大格中小格个数 
	char		 m_strUnits[MAXNAMELENGTH + 1];	//表单位 
 
	CScaleUnit   m_ctrlUnit; 
}; 
 
#endif