-
redessiner une SDI
bonsoir
j'utilise une SDI. en fait je dessine une grille dans le ClientRect de la CView. mon probleme est que j'utilise aussi un timer, à chaque iteration du timer quelques cellules de la grille changent de couleur et je redessine toute la grille. donc, j'obtient quelques parasites on redessinant avec repetitions. est ce normal ? sinon comment faire pour rendre la séquence de dessin fluide?
merci pour votre aide.
-
Je dirais ne faire le dessin qu'en un seul endroit (typiquement la fonction OnPaint() ou OnDraw()) et quand tu as besoin qu'elle soit redessiner, faire un Invalidate() sur la bonne CWnd (au pire, tu utilises la CFrameWnd) pour demander que OnDraw() soit appelée.
-
bonjour
merci Médinoc.
mais je fais bien ce que vous dites. non, mais dessins sont correctes et justes, sauf que dans la boucle (je redissine chaque 100 ms) j'ai comme des flashs ou des trucs blancs qui apparaissent lors du redessinement. mais, c'est bon pour le contenu des dessins c'est juste ces trucs qui coupent la fluidité entre le passage d'un etat à l'autre du dessin.
ces trucs sont normaux ou bien c'est moi qui fais des betises?
-
bonjour
mon prbleme je crois est que quand je redessine la grille je redessine chaque grille à part dans une boucle. est ce que je peux faire ça mais n'afficher le dessin qu'apres la fin de toute les cellules?
-
salut,
le mieux serait de travailler avec un bitmap en mémoire ,
tu peux t'inspirer de ce post de la faq:
http://cpp.developpez.com/faq/vc/?pa...TreeCtrlCustom
le principe:
le dessin se fait dans un bitmap en mémoire .
le bitmap est projeté sur la form .
en cas de repaint on envoie directement le bitmap on ne redessine pas le dessin..
il serait judicieux de n'envoyer à l'écran que la partie du bitmap qui change .
-
bonsoir
merci farscape, je me suis inspirer de ton exemple et ça marche. mais, ça bouffe tros de memoire. j'ai fini mon projet mais je me demandais comment faire pour dessiner proprement, existe t il des bibliotheques pour (avec c++ biensur). quand je dis proprement je fais allusion au jeux video.
si vous avez des liens utiles mais avec c++ je suis preneur.
merci d'avance