IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

Probl�me de timer


Sujet :

Visual C++

  1. #1
    Membre �m�rite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par d�faut Probl�me de timer
    Bonjour,

    Bien voil�, je suis surpris d'avoir un soucis avec les timers. J'ai parcouru les sujets concernant mon probl�me et je suis confront� � la m�me situation que la discussion suivante:
    http://www.developpez.net/forums/sho...probleme+timer
    Malheureusement, aucune solution ou explication du probl�me f�t �nonc�e...

    Par contre, le timer que je cr�e est associ� � une CDialog de type "popup" et non "child" comme d�crit dans la discussion.

    D'autre part, j'inclue le fichier d'ent�te d'une autre classe, dans la quelle j'utilise aussi des timers.

    Le r�sultat au final est le m�me probleme qu'Alice, SetTimer() retourne bien l'id mais OnTimer() n'est jamais appell�.

    Sauriez vous d'ou cela peut venir?
    Il y a t'il un nombre limit� de timer?

    Nicolas

  2. #2
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    ou et comment tu as initialis� ton timer ?

  3. #3
    Expert confirm�
    Avatar de Mat.M
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 539
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 539
    Par d�faut
    Beh oui mais y'at-il du code dans l'�v�nement OnTimer ??? Si y'a pas de code dedans �a risque de ne pas marcher.
    Et sans code source on ne peut pas t'aider...

  4. #4
    Membre �m�rite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par d�faut
    Citation Envoy� par farscape
    ou et comment tu as initialis� ton timer ?
    Je l'ai d�clar� dans une fonction membre d'une classe de type CDialog de la mani�re suivante:
    et j'ai g�n�r� le message WM_TIMER via classwizard.

    Juste comme cela j'ai remarqu� qu'il y avait deux messages WM_TIMER selon le filtre (dialog ou window), je crois avoir essay� avec les deux, mais le r�sultat a �t� le m�me. Quel est la diff�rence entre ces deux messages?

    J'ai pourtant impl�ment� 4 autres timers dans mon appli, dont 3 pour une autre classe de type CDialog et un pour une classe fille de type CDialog instanci�e dynamiquement � partir de cette derni�re et l�, j'ai aucun soucis!

    Une explication � mon probl�me du dessus? Si besoin de plus d'informations, dites moi.

    Bon we!

    Nicolas

  5. #5
    Membre �m�rite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par d�faut
    Citation Envoy� par Mat.M
    Beh oui mais y'at-il du code dans l'�v�nement OnTimer ??? Si y'a pas de code dedans �a risque de ne pas marcher.
    Et sans code source on ne peut pas t'aider...
    Si il y a du code, de t�te le voici:
    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 MaClasse::OnTimer(UINT nIDEvent) 
    {
        switch(nIDEvent)
        {
            case 1:
                 if(m_ncpt == 10) m_ncpt = 0;
    	     m_cProgressBar.SetPos(m_ncpt++);
                 break;
     
    	default:
    	      break;
        }    
     
    	// Call base class handler.
    	CDialog::OnTimer(nIDEvent);
    }

  6. #6
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    cette fonction (d'init du timer ) est appell�e quand ? : avant ou apr�s OnInitDialog ?

  7. #7
    Membre �m�rite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par d�faut
    Citation Envoy� par farscape
    cette fonction (d'init du timer ) est appell�e quand ? : avant ou apr�s OnInitDialog ?
    Pourtant bien apr�s la fonction OnInitDialog().... C'est bizarre!

    Je vais prochainement t�cher de g�n�rer une autre classe d�riv�e de CDialog dans mon projet, et de lancer un timer pour voir le r�sultat.

    J'esp�re comprendre d'ou vient le soucis.

    Bon dimanche

    Nicolas

  8. #8
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    tu as test� le retour de SetTimer ?

  9. #9
    Membre �m�rite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par d�faut
    Citation Envoy� par farscape
    tu as test� le retour de SetTimer ?
    Oui oui, j'ai bien test� le retour. Pour le code montr� plus haut, SetTimer() me retourne bien l'identifiant 1.

  10. #10
    Membre �m�rite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par d�faut
    Donc peut �tre que je vois d'ou vient le soucis...

    En fait, je cr�e mon timer alors que je suis d�j� dans le traitement d'un message pour �x�cuter la fonction OnButton1(). Surement que le message du timer est trait� une fois la fonction OnButton1() termin�... Je me trompe?

    Ce que je d�sirais faire, c'est faire �voluer une ProgressBar durant l'�x�cution de la fonction OnButton1(), ceci en cr�ant un timer!

    Une id�e serait peut �tre de cr�er mon timer dans la fonction OnInitDialog(), puis selon l'�tat d'une variable globale, j'incr�mente la position de ma ProgressBar. Mais ca m'embete quand m�me un peu de cr�er un timer alors que je ne m'en servirais qu'un petit peu � un moment donn�.

    Quelle solution semblerait la plus simple pour rem�dier � cela?
    [EDIT] Je crois que ca devrait bien r�pondre � mon probl�me!
    pompe � messages


  11. #11
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    oui ...,
    surtout si ton traitement ne laisse pas respirer l'application...

  12. #12
    Membre �m�rite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par d�faut
    Citation Envoy� par farscape
    surtout si ton traitement ne laisse pas respirer l'application...
    En effet...Sourire

    Nicolas

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Toujours un probl�me avec Timer
    Par adidas40 dans le forum VB 6 et ant�rieur
    R�ponses: 5
    Dernier message: 10/10/2006, 11h04
  2. Probl�me de Timer
    Par nikus_knx dans le forum MFC
    R�ponses: 7
    Dernier message: 18/05/2006, 14h27
  3. Probl�me de Timer
    Par hammag dans le forum AWT/Swing
    R�ponses: 3
    Dernier message: 25/04/2006, 17h52
  4. [VC++ - MFC] Probl�me de Timer
    Par Alice9 dans le forum MFC
    R�ponses: 4
    Dernier message: 08/02/2006, 13h51
  5. [VB6] Probl�me contr�le Timer et boucle For-Next ...
    Par St�phane BEHMENBURG dans le forum VB 6 et ant�rieur
    R�ponses: 6
    Dernier message: 01/12/2005, 17h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo