Используется при синхронизации действия программы со временем. Работе таймера соответствует сообщение WM_TIMER. В карте сообщений ему принадлежит макрокоманда ON_WM_TIMER (), которой в свою очередь отвечает обработчик OnTimer ().
// файл st1.h
class CApp : public CWinApp
[public: BOOL InitInstance();];
class CMainWin : public CFrameWnd
[public: void OnTimer(UINT);
CMainWin();
DECLARE_MESSAGE_MAP()];
// файл st1.cpp
#include <afxwin.h>
#include "st1.h"
CMainWin::CMainWin()
[Create(NULL,NULL); // cтворення вікна з пустим заголовком
SetTimer(1,500,NULL); // запуск таймера з інтервалом 500 мілісекунд
]
BOOL CApp::InitInstance()
[m_pMainWnd = new CMainWin;
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE; ]
CApp App;
BEGIN_MESSAGE_MAP(CMainWin,CFrameWnd)
ON_WM_TIMER() // макрокоманда обробки таймера
END_MESSAGE_MAP()
void CMainWin::OnTimer(UINT i)
[char s[250];
CTime curtime = CTime::GetCurrentTime();
struct tm *newtime;
newtime=curtime.GetLocalTm();
wsprintf(s,asctime(newtime));
s[strlen(s)-1]='\0';
CClientDC dc(this);
dc.TextOut(10,10,s,strlen(s)); // копіювання рядка із часом у вікно
]