Bonjour à tous,
J'ai une boite de dialogue, et un petit rectangle de type CStatic dans un coin. Je voudrais programmer une petite animation dans ce rectangle. Pour ce faire, j'utilise un Timer (SetTimer et OnTimer) et CDC::FillSolidRectangle.
Le principe est que je dessine une rectangle blanc sur toute la surface, et tout de suite après, un petit rectangle rouge, de façon à ce que l'on voie un petit rectangle rouge se déplacer à l'intérieur d'un rectangle blanc.
Et je ne comprends pas: l'affichage est affreux!! Mon petit rectangle rouge est constamment strillé de ligne blanches, comme si le buffer d'affichage n'arrivait pas à suivre.
Comment puis-je améliorer cet affichage? Est-ce qu'il ya des méthodes plus efficace?
merci.
voici mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 void CTestTimer2Dlg::fnUpdateFrame() //fonction appelée par le Timer toute les 40ms (25 fps) { //je passe les calculs des x et y, mais ils sont justes et extrêmement simples (donc rapides) mpMainDc->FillSolidRect(x0, y0, xM,yM, mcrWhite); mpMainDc->FillSolidRect(x1,y1,x2,y2, mcrRed); }
Partager