dbiare
Messages postés45Date d'inscriptionmercredi 30 novembre 2005StatutMembreDernière intervention 6 janvier 2006
-
15 déc. 2005 à 15:55
CoyoteVsBeepBeep
Messages postés41Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention 3 mars 2006
-
10 avril 2006 à 22:04
Bonjour
Je n'arrive pas a déclencher un timer sous Visual C++6 !!!
Après avoir créé un symbole (ID_TIMER) et lui donner une valeur j'écrit : SetTimer(ID_TIMER,500,NULL);
J'écris une fonction Timer() et je ne sais pas comment relier l'événement (mis en application avec la fonction SetTimer(?)) et la fonction Timer() ??
Quelqu'un peu m?aider svp? ?
Merci
dbiare
Messages postés45Date d'inscriptionmercredi 30 novembre 2005StatutMembreDernière intervention 6 janvier 2006 15 déc. 2005 à 16:37
Après vérification je n'ai rien de tout cela dans mon x.h et x.cpp
Bien évidement, quand je rajoute, à la main, ce que tu m?as écrit en gras cela ne fonctionne pas !
Voici ma démarche :
Je vais dans l'onglet Resource View de l'espace de travail, click droit sur xxxResources et sélectionne Resource Symbole.
Je crée un nouveau symbole (ID_TIMER) et je lui attribut une valeur (différente de toutes celle qui existent).
Dans la fonction OnInitDialog (c'est une application MFC dialog Box),
j'écrit : SetTimer(ID_TIMER,500,NULL);
ce qui donne un déclenchement toute les 500 ms sans contourner l'événement.
J'écris une fonction OnTimer() dans laquelle je « traite » l'événement.
Ma démarche est-elle correcte ?
Elle doit certainement être erronée puisque je n'aperçois pas :
afx_msg void OnTimer(UINT nIDEvent);
et
ON_WM_TIMER()
Aux endroits indiqués !
ricky78
Messages postés126Date d'inscriptionjeudi 5 juin 2003StatutMembreDernière intervention11 juillet 2006 15 déc. 2005 à 16:43
Rebonjour
C'est dans claase wizard que tu indique a ton dialog que tu as un TIMER.
Tu cherche le message WM_TIMER et tu cree une nouvelle fonction OnTimer , le class wizard t'ecrira directement ce qu'il te faut dans le .h et le cpp.
Il ne reste plus qu'a aller a ta fonction OnTimer et code en fonction de ID de ton timer
void CSpace43Dlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CoyoteVsBeepBeep
Messages postés41Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention 3 mars 2006 15 déc. 2005 à 16:51
une des maniere simple de créer ton timer est:
dans ton project tu fais menu view/classwizard.
dans Messages tu selectionne WM_TIMER puis tu fais bouton add function et bouton Edit code.
ca devrait te creer la fonction correctement.
par contre, écrire a la main afx_msg void OnTimer(UINT nIDEvent); et ON_WM_TIMER() devrait fonctionner.
si tu as deja créer des évenement, tu devrais deja avoir d'autre déclaration afx dans ton *.h et d'autre message WM_* dans ton cpp
Vous n’avez pas trouvé la réponse que vous recherchez ?
CoyoteVsBeepBeep
Messages postés41Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention 3 mars 2006 15 déc. 2005 à 16:54
j'ai oublié, dans ton fichier dlg.cpp, dans ta fonction OnInitDialog(), ajoute un
SetTimer(0,100,NULL); par exemple (id=0 et temps de déclenchement= 100 ms)
met un break point dans ta fonction timer et tu devrais rentrer dedans a tout les coup !
CoyoteVsBeepBeep
Messages postés41Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention 3 mars 2006 15 déc. 2005 à 18:02
autre moyen de creer aussi ton timer:
tu vas dans ta dialog box (dans ressources), tu fais un click droit dessus (pas dans la partie workspace mais dans la partie ou tu vois ta boite de dialogue) tu choisis event puis tu choisis dans NEW Windows messages event WM_TIMER et tu cliques sur le bouton Add and Edit.
voila, c'est encore une autre solution qui te permet de créer un timer qui marche.
les lignes de code afx_msg void OnTimer(UINT nIDEvent); et ON_WM_TIMER() devraient etre ajouter automatiquement par le wizard
dbiare
Messages postés45Date d'inscriptionmercredi 30 novembre 2005StatutMembreDernière intervention 6 janvier 2006 15 déc. 2005 à 18:13
C'est bon mon timer fonctionne alors je vais l'utiliser comme cela car j'ai perdu trop de temps aujourd'hui!! Mon soft ne sera jamais prés a temps!!
Merci encore