Bonjour,
Pour afficher des graphiques, j'utilise actuellement un système de DC en mémoire avec un bitmap
Dans le OnEraseBkgnd je fais un clear de la zone
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CClientDC dc(this); m_dcMem = new CDC(); m_dcMem->CreateCompatibleDC(&dc); m_bMap.CreateCompatibleBitmap(&dc, m_Rect.Width(), m_Rect.Height());
Dans le paint je dessine dans le dc m_dcMem et ensuite je fait un BitBlt dans le dc écran.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 m_dcMem->SelectObject(&m_bMap); m_dcMem->PatBlt(m_Rect.left, m_Rect.top, m_Rect.Width(), m_Rect.Height(), PATCOPY);
Je voudrais mettre en place un système de calque qui m'éviterait de tout redessiner à chaque fois : dans mon cas
- calque des axes
- calque des courbes
- calque des curseurs.
J'ai beau utilisé 3 DC en mémoire et 3 bitmaps, rien à faire. A chaque fois il repasse dans le OnEraseBkgnd et du coup je perds tout, et si je fais en sorte de ne passer qu'une seule fois ma zone est noire.
Merci d'avance pour votre aide.
Partager