⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ngtimer.h

📁 ResOrg 图形化管理Vc项目的资源ID的工具的源代码。 ResOrg - Manage and Renumber Resource Symbol IDs Introduction The
💻 H
字号:
#if !defined(__NGTimer_H__)
#define __NGTimer_H__

////////////////////////////////////////////////////////////////
// CNGTimer Copyright 1999 by Anna-Jayne Metcalfe (code@annasplace.me.uk)
//

////////////////
// CNGTimer makes using Timers easy in non-window objects
// like CDocuments.
//

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#include <afxtempl.h>

class CNGTimer;

typedef	CMap<UINT, UINT&, CNGTimer*, CNGTimer*> CMapIDtoTimer;
	
////////////////////////////////////////////////////////////////////////////
// CNGTimer object

#define	CNGTimer_BASE CObject

class NGLIB_EXT_CLASS CNGTimer : public	CNGTimer_BASE
{
// Construction
public:
			CNGTimer(void);

	virtual	~CNGTimer(void);


// Attributes
protected:
			DWORD					m_dwTime;		// The time of the last notification

			UINT					m_nID;			// Timer ID

			UINT					m_nInterval;	// Timer interval, as programmed by the user

			CCmdTarget*				m_pTarget;		// The window or command target to route the message to

			UINT					m_nCmdID;		// The ID of the WM_COMMAND message to send.
													// If 0, m_pTarget must be a CWnd object, and
													// will receive WM_TIMER messages directly


// Operations
public:
			// Start the timer.
			//
			// The first form start a timer which sends a WM_COMMAND message with a specified
			// ID to a command target.
			// 
			// The second sends a WM_TIMER message directly to a window.
			//
			// The third restarts a paused timer
			//
			UINT					Start(	CCmdTarget* pTarget,	// Target to send WM_COMMAND message to
											UINT nID,				// ID of message
											UINT nInterval);		// Interval in ms
				
			UINT					Start(	CWnd* pWnd,				// Window to send WM_TIMER message to
											UINT nInterval);		// Interval in ms
				
			UINT					Start(void);
				
				
			// Stop the timer
			BOOL					Stop(void);

			BOOL					IsRunning(void) const
										{ return (0 != m_nID); }

			// Get/Set interval. Note: setting the interval while the timer is running will stop it
			// and create a new timer. SetInterval returns the ID of the new timer if running.
			UINT					GetInterval(void) const
										{ return m_nInterval; }

			UINT					SetInterval(UINT nInterval);

			
// Overrides
public:
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CNGTimer)
	virtual	void					OnTimer(DWORD dwTime);
	//}}AFX_VIRTUAL


// Diagnostics
public:

#ifdef _DEBUG
	virtual void					AssertValid(void) const;

	virtual void					Dump(CDumpContext& dc) const;
#endif


// Implementation
private:
	static	CMapIDtoTimer			m_mapTimers;

	static	void CALLBACK EXPORT	TimerProc(	HWND hWnd,      // handle of CWnd that called SetTimer, or NULL
												UINT nMsg,      // WM_TIMER
												UINT nIDEvent,  // timer identification
												DWORD dwTime);  // system time

};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif // !defined(__NGTimer_H__)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -