📄 ngtimer.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 + -