begin process at 2012 05 30 13:56:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Timer C++ & Methode non static


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Timer C++ & Methode non static

dimanche 18 décembre 2005 à 16:24:12 | Timer C++ & Methode non static

watoubilly

bonjour,
je souhaiterais réaliser un timer dans une classe C++ qui appel une methode de cette meme class.
Mon pb est que cette classe ne dispose pas des propriétés d'une fenetre (CWnd).
Donc SetTimer(numTimer,Delay) ne marche pas car je n'arrive pas a mettre en place le WM_TIMER.
Ensuite j'ai essayé le SetTimer avec la fonction CALLBACK et ca ne marche que pour une fct C ou C++ static.
Donc si cé static j'ai plus acces a mes variables membres.

Y'a t'il une autre methode pour faire ce Timer ??
Le but etant de faire une attente d'une seconde environ mais que ca ne blok pas le refresh de ma fenetre.
Donc inutile de me parler de Sleep ou d'heure System dans une boucle...

Merci d'avance !
lundi 19 décembre 2005 à 12:24:22 | Re : Timer C++ & Methode non static

luhtor

Réponse acceptée !
Moi j'utilise la libraire glib pour ca.
g_timeout_add(func, time, arg) exécute une certaine fonction toute est x milliseconde. (je suis pas sur des arguments)

http://developer.gnome.org/doc/API/2.0/glib/glib-The-Main-Event-Loop.html#g-timeout-add

Pour ton problème de static, ca deja été rabaché sur ce forum. Tu peux utiliser une fonction static, a laquelle tu envois en argument le pointeur de l'objet a modifié. C'est tout simple.
lundi 19 décembre 2005 à 12:34:48 | Re : Timer C++ & Methode non static

watoubilly

Ha ouais, ca a pas l'air con ce que tu dis sur le passage de l'objet a ma fct timer !!
Cé un peu crad d'un point de vu POO mais moi ca me plait bien.

Mon, je vais essayer de faire ca !!
Merci luthor.

;lmkl
lundi 19 décembre 2005 à 13:19:09 | Re : Timer C++ & Methode non static

watoubilly

Bon j'essaye de faire ton truc et je vois pas trop comment faire.
J'ai ça...
Je voudrais afficher la variable "toto" de ma classe dans une boite de dialog.

Mais ou passer un poiteur sur mon objet a la methode static.


"Mon.h"
class CTestDlg : public CDialog
{
    CString toto;

    static VOID CALLBACK MyTimerProc( 
       HWND hwnd,              // handle to window for timer messages 
       UINT message,            // WM_TIMER message 
       UINT idTimer,             // timer identifier 
       DWORD dwTime)      // current system time 
      {
       AfxMessageBox(toto);
      }

}

"Mon.cpp"
CTestDlg::OnOK()
{
    toto="allo";
   ::SetTimer(0,  // handle to main window
    3,                 // timer identifier 
    5000,           // 5-second interval
    (TIMERPROC) this->MyTimerProc); // timer callback
}

;lmkl

lundi 19 décembre 2005 à 13:20:20 | Re : Timer C++ & Methode non static

watoubilly

ATTENTION : Ma vrai classe n'herite de rien !!

;lmkl
lundi 19 décembre 2005 à 18:00:22 | Re : Timer C++ & Methode non static

luhtor

Et bien, tu peux pas passer un argument avec la fonction SetTimer ? Doit surement y avoir un moyen. Mais comme j'ai jamais utilisé windows en programmation, je peux pas trop t'aider :)
Si OnOK peut pas etre appelé plusieurs, tu peux créer un pointeur static dans ta classe qui contient le pointeur de l'objet qui a appelé le callback. Mais bon, c'est crade et ca ne s'applique peut etre pas dans ton cas.


Cette discussion est classée dans : timer, methode, fenetre, static, classe


Répondre à ce message

Sujets en rapport avec ce message

Acces class a travers un timer [ par dambeaufort ] Bonjour, je viens de creer un timer sous MFCce timer devrais m'appeler une fonction d'une classe, le probleme c que ca me dit que m'a fonction n'est p Passage d'argument à un thread [ par Spiffou ] salut à tous,j'ai besoin d'utiliser des threads pour effectuer un traitement en parallele, le pb c'est que ce traitement est une methode mais que je n Fenetre dans une fenetre ??? [ par PunkDude424 ] Bonjour, sa fait assez longtemps que je fais du C++ mais j'en ai toujours fait en mode console et je voudrais mis mettre en windows...et je ne compren Effacer le contenu d'une fenetre... [ par Galmiza ] Salut,Actuellement, pour effacer l'ecran je trace un rectangle plein blanc sur la fenetre.Or bizarrement, cette methode fait anormalement ramer le PC [urgent] methode en parametre d'une fonction [ par leprov ] salut a tous.bon voila mon probleme. j'ai une classe et je voudrais passer une de ses fonctions membre en parametre de fonction pour effectuer différe Probleme de taille d'une liste chainee static qui varie ... [ par rick_moins_moins ] Bonjour,j'ai besoin de faire  une liste chainee dans mon programme afin de cataloguer tous les objets de mon projet. Pour cela ma liste chainee est st illegal call of non-static member function [ par Zootella ] Hello all, J'ai une classe qui comprend une fonction static, jusque là pas de problémes, mais quand j'esseye d'appeler une fonction de la même classe Problème avec l'utilisation d'un timer [ par KissyFroth ] J'ai créé un timer pour refraichir une fenetre à intervalle de temps régulier. Le problème c'est qu'en faisant cela, je ne comptai pas précisément "ra une classe static [ par Adeon ] bonjour a tous!je suis sur le developpement d'un jeux.certaine classe ne contienne qu'un seul objet comme par exemple la classe Interface, ou encore l Surdéfinition statique (static) d'une variable membre [ par PetersonG ] Bonjour,Une drôle d'idée m'a fait surdéfinir en static une variable membre d'une classe parente, et, à ma grande surprise, le code compile sans problè


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales