IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

[GDI+] Double buffer


Sujet :

MFC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 13
    Points : 11
    Points
    11
    Par défaut [GDI+] Double buffer
    Bonjour,

    Je me suis inspirer de ce code : http://www.developpez.net/forums/viewtopic.php?t=273781 pour essayer de mettre en place un double buffer pour GDI+, voila le code que j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	CPaintDC dc (this); 
    	CDC   *buffer   = new CDC(); 
     
    	buffer->CreateCompatibleDC(&dc);
     
    	Graphics g(buffer->GetSafeHdc());
    	g.DrawRectangle(new Pen(0x220000FF) , 0,0,100,100);
     
     
    	dc.BitBlt(0,0, 500, 500, buffer, 0, 0, SRCCOPY);
    et ça ne marche pas... :s


    Est-ce que c'est du uniquement au fait que je ne passe pas par le bitmap ?
    Comment faire autrement ?

    Merci d'avance

  2. #2
    Membre éclairé
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Points : 668
    Points
    668
    Par défaut
    ben le code que j'avais mis c'était pour VC 6.0, je te le garantis pas pour .NET....

    C'est quoi Graphics...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Je suis bien sous VC 6.0

    Pour graphics c'est une classe de GDI+.


    Un code d'affichage normal serai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CPaintDC dc (this);
    Graphics g(dc->GetSafeHdc());
    g.DrawRectangle(new Pen(0x220000FF) , 0,0,100,100);
    Le problème avec un code comme celui-là c'est que sur des grandes zones d'affichage des "flashs" apparaissent (à 1/10 sec de refresh).
    Je voulais donc essayer de supprimer ça avec un double-buffer...


    Mon problème de base est en fait que je sais afficher ce que je veux a partir d'un CPaintDC (par ex. le bout de code au dessus), mais je ne sais pas comment le sauvegarder...
    Sinon plu de pb, je l'affiche, je le sauvegarde quelque part (données membre de ma classe) et j'ai plu qu'a le rappeller sur les OnPaint.

    Mais je sais pas faire :(

  4. #4
    Membre éclairé
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Points : 668
    Points
    668
    Par défaut
    Ouai, ben le GDI + non plus je connais pas trop...

    par contre pour le flickering, cherche dans le forum OnErasBkgnd (WM_ERASEBKGND) je crois qu'il y as plusieurs posts la dessus

    Si ça se trouve sa supprimera ton problème sans double buffering....

Discussions similaires

  1. [Dessin]Double Buffering + Components
    Par Higestromm dans le forum 2D
    Réponses: 1
    Dernier message: 04/07/2005, 15h11
  2. [MFC] Scinttillement vs Double buffering
    Par DamessS dans le forum MFC
    Réponses: 9
    Dernier message: 07/04/2005, 09h01
  3. Réponses: 1
    Dernier message: 04/04/2005, 11h19
  4. Réponses: 7
    Dernier message: 03/08/2004, 16h33
  5. [Exception]Double buffering & NullPointerException
    Par Seiya dans le forum API standards et tierces
    Réponses: 25
    Dernier message: 09/07/2004, 18h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo