web-dev-qa-db-fra.com

Comment utiliser la minuterie dans l'application de dialogue MFC?

Je développe une application de dialogue MFC dans Visual Studio 2008. Je souhaite utiliser la minuterie qui commence au début de l'application et continuer à exécuter et appelle une fonction qui effectue ma tâche? Comment puis-je faire ceci?

Merci

17
Ali Ahmed

Il suffit d'utiliser SetTimer méthode et passez deux arguments: ID de la minuterie (n'importe quel nombre) et le délai d'attente en millisecondes. Ensuite, écrivez OnTimer implémentation et une entrée ON_WM_TIMER à l'intérieur BEGIN_MESSAGE_MAP...END_MESSAGE_MAP.

CWND :: Settimer prend 3 paramètres, mais seulement 2 sont nécessaires. Passer la troisième argument comme null.

CWND :: Ontaler

25
Ajay
_AFXWIN_INLINE UINT_PTR CWnd::SetTimer(UINT_PTR nIDEvent, UINT nElapse,
    void (CALLBACK* lpfnTimer)(HWND, UINT, UINT_PTR, DWORD))

Vous voudrez peut-être faire quelque chose comme

UINT_PTR myTimer = SetTimer (1, 1000, null); // one event every 1000 ms = 1 s

et réagir à l'événement On_timer dans le gestionnaire d'événements de votre fenêtre:

void CMyView::OnTimer (UINT_PTR nIdEvent)
{
if (nIdEvent == 1)
    // handle timer event
}

Sinon, vous pouvez transmettre un pointeur sur une fonction qui manipule les événements de la minuterie. Garder la poignée sur la minuterie vous permet de l'éteindre en utilisant KillTimer () au cas où vous auriez à.

4
karx11erx

Si vous souhaitez obtenir l'idée de base d'utiliser des minuteries, veuillez consulter ce lien et passer à travers la procédure étape par étape sur le travail avec les minuteries. Après cela, vous devriez pouvoir utiliser facilement les minuteries dans votre application quand vous le souhaitez.

Lien: http://www.funconx.com/visualc/controls/timer.htm

J'espère que cela t'aides.

À votre santé.

1
Neophile