-
Probleme avec WM_TIMER
bonjours tout le monde ,
je suis débutant en vc++,je veux faire une petite application win32 qui permet dafficher le mot toto à chaque seconde dans un coté du fenetre ,
g declaré une variable locale x qui vaut rand()%4 et g fais un switch selon les valeurs 0,1,2,3 de x pour l'ecriture du texte (g ecrit ca dans le code consacré pour case WM_PAINT)
Puis g crée un case WM_CREATE dont g ecrit SetTimer(.......) ,et apres un WM_TIMER dont g ecrit SendMessage(hWmd,WM_CREATE,0,0)
je sais pas si ce demarche est correcte et si oui ou est le brobleme car l'application n'a pas marche (la fenetre disparait apres une seconde )
je vous remercie d'avance ,
-
Salut,
il ne faut pas recréer la fenetre, mais simplement faire une mise à jour du controle où tu affiches le mot toto à chaque passage dans le message WM_TIMER
-
Merci nico,
si g bien compris ta reponse ge ne dais pas envoyer le message WM_PAINT dans le code de WM_TIMER que dois je faire alors , parceque à chaque instant il faut executer le code qui contient le case x.
merci de nouvequ
-
Comment est affiché le texte toto ?
Dans la fenetre directement avec un TextOut ?
Dans un controle (genre label ou edit) avec SetWindowText ?
-
-
et bien dans ton timer, il te suffit de rappeler drawtext à la meme place, sans oublier d'effacer juste avant le texte déjà présent.
C'est directement dans le case WM_TIMER que tu feras ton random pour choisir quelle chaine afficher avec drawtext
-
Merci beaucoup nico c vraiment tres gentil de me donner ses informations :D ,
-
Moi, je dirais :
1) faire le random dans WM_TIMER,
2) mémoriser le random,
3) faire un InvalidateRect(hWnd, NULL, TRUE); dans le WM_TIMER pour redessiner la fenêtre,
4) tracer le texte dans le WM_PAINT
-
effectivement, c'est mieux :wink: