[MFC] CDC: Problème d'affichage
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:
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);
} |
Re: [MFC] CDC: Problème d'affichage
Citation:
Envoyé par r0d
...
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.
...
c'est du scintillement blanc ou ce sont réellement des lignes ?
En general ce que je fait c'est que je fais les opérations sur un CDC en mémoire et après je fais un bitblt de ce cdc mémoire sur le cdc dialog....