mise en oeuvre d'un timer - C++ - Programmation
Marsh Posté le 14-05-2004 à 07:39:59
euh, j'y connais rien, mais bon
enregister un timer sans donner la fonction de rappel ...
SetTimer(1000,1000,NULL);
je vois pas comment tu veux qu'il devine que void MonProg::onTimer(UINT nIDEvent) doit être appeler
Marsh Posté le 14-05-2004 à 08:32:35
Effectivement, tu n'y connais rien, mais vu que c'est de la programmation Windows... on peut te comprendre
OnTimer est appelé automatiquement a la reception d'un message WM_TIMER. Quand tu invoques SetTimer, tu peux éventuellement lui donner une fonction de rappel, mais c'est pas obligé.
Essaie plutot ca :
SetTimer(MON_TIMER_ID, 1000, NULL);
if(nIDEvent == MON_TIMER_ID)
.......
Marsh Posté le 14-05-2004 à 08:48:03
la fonction OnTimer() est normalement une fonction appelé par défaut lors du lancement du timer...
Marsh Posté le 14-05-2004 à 08:54:50
enfin, de toute manière, même de cette facon, mon OnTimer() n'ai qd meme pas appelé...
Marsh Posté le 14-05-2004 à 08:55:15
Tu veux dire MON_TIMER_ID?
C'est une constante, tu lui donnes la valeur que tu veux... et d'ailleurs je vois pas pourquoi tu parles d'initialisation
Marsh Posté le 14-05-2004 à 08:57:17
Essaie déja avec ca...
Code :
|
Marsh Posté le 14-05-2004 à 08:58:44
Au fait ca parait débile mais MonProg ca dérive bien d'un CWnd j'espere?
Marsh Posté le 14-05-2004 à 09:05:28
voila, en fait c'est de ma faute, j'ai oublié de préciser que mon app est une SDI et que ma classe hérite de CDialog ...
J'ai bien une OnInitDialog, mais c'est moi qu'il l'ai rajouté à la main, de tel sorte que celle-ci soit lancée automatiquement au lancement de ma boite de dialog (enfin, je vx pas trop rentré ds les détails).
et pour reprendre ton Essaie déja avec ca... Ace17, je l'ai déjà essayer plusieurs fois, mais comme ce n'est pas un projet "boite de dialog", ma classe n'hérite pas de CWnd, donc je dois faire avec CDialog...
Marsh Posté le 14-05-2004 à 09:08:54
class CDialog : public CWnd
Donc un CDialog, c'est un CWnd...
Vérifie par un autre moyen que ton OnInitDialog est bien appelée, parce que normalement elle doit l'etre
Marsh Posté le 14-05-2004 à 09:14:47
elle est bien appelé car dans cette fonction, j'ai toute une connexion qui s'établit à une caméra est affiche le flux vidéo de celle-ci à mon écran.
Si cette fonction n'était pas applée, je n'aurais aucune image.
donc, le timer est bien lancer !
mais, à aucun moment ma fonction OnTimer n'est appelé !!!!!!!!!
Marsh Posté le 14-05-2004 à 09:17:44
Question idiote, encore :
Code :
|
Ca c'est le code que tu as posté. Ce serait pas plutot OnTimer ?
Marsh Posté le 14-05-2004 à 09:18:43
Code :
|
Marsh Posté le 14-05-2004 à 09:21:05
Ace17 a écrit : Question idiote, encore :
|
lorsque tu poste du codage, il te transforme un OnTimer en onTimer ...
Marsh Posté le 14-05-2004 à 09:23:02
Montre comment est déclaré OnTimer dans la classe MonProg
Marsh Posté le 14-05-2004 à 09:26:36
heu.... je l'ai déclaré en void .... c'est plutot du type CDialog ?
Marsh Posté le 14-05-2004 à 09:28:32
Code :
|
Sinon le compilo comprendra pas que t'es en train de redéfinir la fonction virtuelle
Marsh Posté le 14-05-2004 à 09:33:06
voila fait, cependant, ma fonction n'est toujours pas appelé par SetTimer()... !
Marsh Posté le 14-05-2004 à 10:27:00
le .h :
Code :
|
le .cpp :
Code :
|
Marsh Posté le 14-05-2004 à 10:35:48
Code :
|
T'utilises Visual? Parce que si oui tu ferais mieux de laisser faire ca au ClassWizard
Marsh Posté le 14-05-2004 à 10:42:36
lol, oui c'était ca... j'aime bien comprendre ce que je fais, alors je me tappe tout à la main, et j'avais complètement oublié de le rajouter à la main !
en tout cas je te remercies, ca m'enlève une bonne épine du pied
Marsh Posté le 13-05-2004 à 17:36:32
arrrrrrrrrrgggggggggggggggg !!!!!!!!!!
je n'arrive pas à comprendre pourkoi ca ne marche pas !!!!!!!!!!!!!
voici mon code :
et mon prog. ne m'affiche meme pas UNE fois "Hello" !!!
help plz !