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

MFC Discussion :

Utiliser un timer dans un CWinThread


Sujet :

MFC

  1. #1
    Membre confirmé Avatar de rzayani
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Par défaut Utiliser un timer dans un CWinThread
    Bonjour,
    J'ai une classe qui hérite de CWinThread. Le traitement de ce thread est périodique (càd il appel la fonction process chaque 5 secondes).
    A t=0 il execute la fonction process pendant x millisec.
    A t=5s, il ré exécute la fonction process.
    La durée d'exécution de la fonction process est variable, donc je ne peux pas utiliser la fonction Sleep entre les deux appels.

    J'ai essayé d'ajouter le message OnTimer, dans un premier temps je le pas trouver, puis j'ai coché dialog dans le champ "Filter for messages available to class" de la fenêtre "New Window Message and Event Handlers".

    Il a ajouté la fonction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void Classe::OnTimer(UINT nIDEvent) 
    {
    	// TODO: Add your message handler code here and/or call default
     
    	CWinThread::OnTimer(nIDEvent);
    }
    Mais lors de la compilation il m'affiche le message suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    error C2039: 'OnTimer' : is not a member of 'CWinThread'
            c:\program files\microsoft visual studio\vc98\mfc\include\afxwin.h(3791) : see declaration of 'CWinThread'
    Comment je peux utiliser le message OnTimer avec CWinThread? Ou Existe-il d'autres solutions pour résoudre cet problème.

    Merci pour vos réponses

  2. #2
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 526
    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 526
    Par défaut
    Citation Envoyé par rzayani
    Comment je peux utiliser le message OnTimer avec CWinThread? Ou Existe-il d'autres solutions pour résoudre cet problème.

    Merci pour vos réponses
    Tout simplement en appelant l'API SetTimer et soit en déclarant une TimerProc une fonction réentrante de gestion de timer soit avec Cwnd :: PreTranslateMsg trouver le message WM_TIMER et Id.
    Mais ce que tu décris là me semble totalement tarabiscoté et pas tres fonctionnel.
    C'est la fenêtre parente qui gère les timers

    La durée d'exécution de la fonction process est variable, donc je ne peux pas utiliser la fonction Sleep entre les deux appels
    Il faut gérer cela avec WaitForSingleObject.
    Sinon utiliser des CEvent serait peut-être + adapté

Discussions similaires

  1. Utilisation composant timer dans module de classe
    Par MaximeM dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/06/2007, 13h35
  2. Réponses: 26
    Dernier message: 13/12/2006, 07h35
  3. Réponses: 1
    Dernier message: 30/07/2006, 02h35
  4. Utilisation de Timer dans Python
    Par aliassaf dans le forum Général Python
    Réponses: 5
    Dernier message: 17/06/2006, 19h06
  5. Utiliser un timer dans une application console
    Par chavers dans le forum Langage
    Réponses: 8
    Dernier message: 25/05/2005, 14h07

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