Bonjour à tous.
Je désire faire sous Visual C++ une fonction qui calcule le temps d'appui sur la barre d'espace. J'ai donc eu l'idée de créer un Timer lorsque j'appuie sur la barre d'espace comme ceci :
Soit le timer arrive à 2 secondes, soit il est interrompue lorsque je relève la barre d'espace, auquel cas je souhaiterai récupérer le temps d'appui en milli-secondes via la fonction de CALLBACK :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 void CBillardView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { CView::OnKeyDown(nChar, nRepCnt, nFlags); if(nChar==0x20) { UINT_PTR m_timer = SetTimer(1, 2000,(TIMERPROC)TimerProc); // création du timer (2 secondes max) } } void CBillardView::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags) { CView::OnKeyUp(nChar, nRepCnt, nFlags); if(nChar==0x20) { KillTimer(1); } }
Mais seulement il me dit que je ne peux "overload" ma méthode TimerProc et il voudrait que lors de l'appel du timer je l'appelle avec tous les paramètres nécessaires .... et c'est là que je bloque ! Si vous avez des idées ou quoi que ce soit je suis preneur !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 void CALLBACK TimerProc(HWND hWnd, UINT nMsg, UINT nIDEvent, DWORD dwTime) { CString str; float time=dwTime; str.Format(_T("%f"),time); AfxMessageBox(str); KillTimer(hWnd,1); }
Merci,
Staticx83.
Partager