Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
607 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [VC++] utilisation des timers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VC++] utilisation des timers

n°147529
try58
Posté le 30-05-2002 à 09:44:45  profilanswer
 

je voudrais faire un prog tout con qui m'affiche une boite de dialogue toutes les 2 sec par exemple.
J'utilise pour cela les fcts CWnd::SetTimer et CWnd::OnTimer.
Dans ma fct CmyprojectDlg::OnInitDialog je fais:
SetTimer(1, 2000, 0);
et je complete la fct suivante :
void CmyprojectDlg::OnTimer(UINT nIDEvent)
{
 AfxMessageBox("toto" );
 MessageBeep(0xFFFFFFFF);
}
 
et le pb c qu'il ne se passe rien lorsque je lance mon appli.
Aurai-je oublie quelque chose?

mood
Publicité
Posté le 30-05-2002 à 09:44:45  profilanswer
 

n°147766
try58
Posté le 30-05-2002 à 13:44:42  profilanswer
 

:bounce: UP!!!

n°147771
youdontcar​e
Posté le 30-05-2002 à 13:48:27  profilanswer
 

un peu plus de précisions ? tu passes bien par le classwizard pour créer ton OnTimer() ?

n°147776
try58
Posté le 30-05-2002 à 13:55:21  profilanswer
 

Non, je l'ai cree a la barbare!!

n°147779
youdontcar​e
Posté le 30-05-2002 à 14:00:16  profilanswer
 

ha :)
 
regarde dans ton code, tu as une table définie par des macros qui 'mappe' tes fonctions à des messages :
 
BEGIN_MESSAGE_MAP(tonDialogue, CDialog)
 
et juste en dessous les définitions message -> procédure. tu dois rajouter ON_WM_TIMER().

n°147782
try58
Posté le 30-05-2002 à 14:01:15  profilanswer
 

Ce que je voudrais savoir, c'est est ce que le programme appelle automatiquement la fct OnTimer une fois que SetTimer a ete appellee? Ou est ce qu'il faut dire a ma fenetre principale que si elle recoit le message WM_TIMER, il faut appeller la fct OnTimer?

n°147783
try58
Posté le 30-05-2002 à 14:02:00  profilanswer
 

excuse j'avais pas vu que tu avais reposte

n°147787
youdontcar​e
Posté le 30-05-2002 à 14:04:48  profilanswer
 

try58 a écrit a écrit :

(1) Ce que je voudrais savoir, c'est est ce que le programme appelle automatiquement la fct OnTimer une fois que SetTimer a ete appellee? (2) Ou est ce qu'il faut dire a ma fenetre principale que si elle recoit le message WM_TIMER, il faut appeller la fct OnTimer?  



(2) est la réponse correcte, car ton handler peut avoir n'importe quel nom. la table de définition des messages sert justement à dire aux mfc quelle fonction appeler à la place de la fonction par défaut.

n°147788
try58
Posté le 30-05-2002 à 14:05:01  profilanswer
 

C comment la syntaxe exacte pour rajouter le message parce moi je n'ai rien.
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()

n°147789
youdontcar​e
Posté le 30-05-2002 à 14:05:57  profilanswer
 

ça doit ressembler à  
 
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)  
  ON_WM_TIMER()
END_MESSAGE_MAP()

mood
Publicité
Posté le 30-05-2002 à 14:05:57  profilanswer
 

n°147792
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 30-05-2002 à 14:07:52  profilanswer
 

le mieux est encore de supprimer ta fonction OnTimer, et de la recréer via le ClassWizard, tu seras sur de ne rien oublier


---------------
J'ai un string dans l'array (Paris Hilton)
n°147795
youdontcar​e
Posté le 30-05-2002 à 14:08:43  profilanswer
 

Harkonnen a écrit a écrit :

le mieux est encore de supprimer ta fonction OnTimer, et de la recréer via le ClassWizard, tu seras sur de ne rien oublier


effectivement :D

n°147797
try58
Posté le 30-05-2002 à 14:09:39  profilanswer
 

Harkonnen a écrit a écrit :

le mieux est encore de supprimer ta fonction OnTimer, et de la recréer via le ClassWizard, tu seras sur de ne rien oublier  




 
Le pb c'est que sous VB7, je n'ai pas trouve le class wizard (enfin si il existe)

n°147799
try58
Posté le 30-05-2002 à 14:10:12  profilanswer
 

try58 a écrit a écrit :

 
 
Le pb c'est que sous VB7, je n'ai pas trouve le class wizard (enfin si il existe)  




vc7 je voulais dire

n°147802
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 30-05-2002 à 14:11:33  profilanswer
 

try58 a écrit a écrit :

 
vc7 je voulais dire  




dans le ClassExplorer, clic droit sur la classe concernée => "Add Event", créer un évènement sur WM_TIMER


---------------
J'ai un string dans l'array (Paris Hilton)
n°147807
try58
Posté le 30-05-2002 à 14:13:28  profilanswer
 

Harkonnen a écrit a écrit :

 
dans le ClassExplorer, clic droit sur la classe concernée => "Add Event", créer un évènement sur WM_TIMER  




Add event n'apparait pas, je peux juste ajouter une fct ou une variable. C louche!!

n°147810
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 30-05-2002 à 14:15:27  profilanswer
 

Je peux me tromper aussi, je ne l'ai pas sous les yeux. Mais je sais qu'il y a un Add Event qqpart. Cherche dans les menus ou sur tous les clics droits que tu pourras faire   :)


---------------
J'ai un string dans l'array (Paris Hilton)
n°147831
try58
Posté le 30-05-2002 à 14:34:20  profilanswer
 

Je viens de verifier sur un VC++6 et y a bien la fonctionnalite que tu me dis (Add New message handler un truc dans ce genre) mais sous VC++7 et ben y pas.

n°147838
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 30-05-2002 à 14:38:02  profilanswer
 

:heink:  
je vérifierai ce soir, mais j'étais persuadé de l'avoir vu...


---------------
J'ai un string dans l'array (Paris Hilton)
n°147841
youdontcar​e
Posté le 30-05-2002 à 14:39:30  profilanswer
 

tu as essayé le ON_WM_TIMER() ?

n°147842
try58
Posté le 30-05-2002 à 14:40:02  profilanswer
 

ok merci du coup de main!!

n°147850
try58
Posté le 30-05-2002 à 14:45:24  profilanswer
 

youdontcare a écrit a écrit :

tu as essayé le ON_WM_TIMER() ?  




oui j'ai essayer mais ca ne marche toujours pas!!

n°147983
try58
Posté le 30-05-2002 à 16:15:24  profilanswer
 

youdontcare a écrit a écrit :

ça doit ressembler à  
 
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)  
  ON_WM_TIMER()
END_MESSAGE_MAP()  




 
Je me suis plante de Cdialog, c pour ca que ca ne marchait pas.
Maintenant ca va beaucoup mieux!!  :)  
Merci les gars!

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [VC++] utilisation des timers

 

Sujets relatifs
SQL : utilisation de sous requêtes ?Utilisation des frames dans une page ..
Pb d edition en vb (Utilisation de rich text box)[VB] Utilisation des DataReport
Sondage sur l'utilisation du SmalltalkUtilisation de la souris dans une application Delphi !
utilisation de telnet dans une application Delphi[API] Utilisation de SHBrowseForFolder...
[VB] erreur 10048, Adresse en utilisation[delphi 6] aide sur utilisation des CheckListBox
Plus de sujets relatifs à : [VC++] utilisation des timers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR