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