www.pudn.com > CTableDemo.rar > Odom.h


#if !defined(AFX_ODOM_H__54BD30AF_1102_11D6_9D7D_006008CEA22C__INCLUDED_) 
#define AFX_ODOM_H__54BD30AF_1102_11D6_9D7D_006008CEA22C__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
// Odom.h : header file 
// 
#include "StdAfx.h" 
#include "Counter.h" 
 
 
#define		MAX_DIGITS		20 
 
//	user defined messages 
#define		WM_ADVANCE_COUNTERS	   WM_USER + 100 
#define		WM_ADVANCE_COUNTER	     WM_USER + 101 
#define		WM_RESET_COUNTERS    	     WM_USER + 102 
#define		WM_SET_ROTATION_STYLE     WM_USER + 103 
 
//	rotation styles 
#define		STYLE_ROTATE_FROM_ZERO			0 
#define		STYLE_ROTATE_WRAPAROUND	     1 
#define		IMAGE_WIDTH		16 
#define		IMAGE_HEIGHT	16 
 
///////////////////////////////////////////////////////////////////////////// 
// COdom window 
 
class COdom : public CStatic 
{ 
// Construction 
public: 
	COdom(); 
 
// Attributes 
public: 
	int				   m_nNumber;		 // number to appear in odometer 
	int                m_RotationStyle; // rotate from zero each time or wrap around 
	CCounter	 m_Digits [MAX_DIGITS]; // array of counters 
 
 
private: 
	int				   m_RotationRate,	// "speed" of counter rotation 
					    m_nCounters;	  // number of counters 
	int				   m_nArrayDigits;	// how many digits (counters) are used for the number 
	int				   m_DigitsArray [MAX_DIGITS]; // string to hold the number 
																		 //  to appear in odometer. 
	 
 
// Operations 
public: 
	void	SetNumDigits (int nNum); 
	 
 
private: 
	int       ParseNumberArray (); 
	void    ZeroNumberArray (); 
	void	InitDigitsArray (); 
	 
 
// Overrides 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(COdom) 
	protected: 
	virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam); 
	//}}AFX_VIRTUAL 
 
// Implementation 
public: 
	virtual ~COdom(); 
 
	// Generated message map functions 
protected: 
	//{{AFX_MSG(COdom) 
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 
	//}}AFX_MSG 
 
	DECLARE_MESSAGE_MAP() 
}; 
 
///////////////////////////////////////////////////////////////////////////// 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Visual C++ will insert additional declarations immediately before the previous line. 
 
#endif // !defined(AFX_ODOM_H__54BD30AF_1102_11D6_9D7D_006008CEA22C__INCLUDED_)