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

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 13
    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 chevronn�
    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
    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 averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 13
    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 chevronn�
    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
    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