Koriscenjem Win32 API funkcija, "tajmer" se startuje pozivom
SetTimer() funkcije (npr. tokom obrade poruke
WM_CREATE), i dodavanjem
case uslova za obradu
WM_TIMER poruke u
switch (ili
else if) uslovnoj petlji za obradu poruka. Na primer:
Code:
switch (message) {
case WM_CREATE:
SetTimer(hwnd, 1, 1000, NULL);
/* ostali kood */
return 0;
case WM_TIMER:
/* kood koji bi se izvrsavao nakon dobijanja WM_TIMER poruke */
return 0;
/* ostali uslovi */
}
Koricenjem MFC biblioteke, "tajmer" se startuje pozivom preklopljene funkcije istog naziva
SetTimer(), naznacavanjem obrade
WM_TIMER deklarisuci poziv
afx_msg void OnTimer(UINT nIDEvent) u deklaraciji "Frame" (izvedene iz
CFrameWnd) klase i naznacavanje imena poruke u implementaciji iste klase. Na primer:
Code:
// cglavnifrejm.h
class CGlavniFrejm : public CFrameWnd {
public:
CGlavniFrejm();
~CGlavniFrejm();
// ostali kood
private:
//{{AFX_MSG(CGlavniFrejm)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnTimer(UINT nIDEvent);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
// ostali kood
}
// cglavnifrejm.cpp
#include "cglavnifrejm.h"
BEGIN_MESSAGE_MAP(CGlavniFrejm, CFrameWnd)
//{{AFX_MSG_MAP(CGlavniFrejm)
ON_WM_CREATE()
ON_WM_TIMER()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
// implementacija kostruktora CGlavniFrejm klase
// implementacije destruktora CGlavniFrejm klase
int CGlavniFrejm::OnCreate(LPCREATESTRUCT lpCreateStruct) {
SetTimer(1, 100, NULL);
// ostali kood
return 0;
}
void CGlavniFrejm::OnTimer(UINT nIDEvent) {
// kood koji bi se izvrsavao nakon dobijanja WM_TIMER poruke
}
// ostali kood
U oba gornja primera, kood za obradu poruke
WM_TIMER ce se verovatno (u zavisnosti od samog kooda) izvrsavati svake sekunde (1 sek. == 1000 ms).
Takodje, najkraci vremenski interval slanja
WM_TIMER poruke, ako se dobro secam, ne moze biti kraci od 50 ms na Win9x odnosno 15 ms na WinNT verzijama.