Bonjour, je sais qu'en voyant le titre plusieur d'entre vous se seront dis que le sujet a déjà été traité ... "Fais du double buffering et voilà ...".
Mais ma question porte sur deux point bien précis, je travaille sous devcpp en api window (WM_PAINT ...). J'ai une fenêtre avec un graphique dessiné à l'intérieur, qui se rafraichi toutes les 40ms environ (c'est une FFT) et là aucun pb de scintillement mon double buffering fonctionee bien. Mais quand je passe sur ma fenetre avec une autre fenêtre que je déplace j'ai le fond d'origine de ma fenêtre qui apparait puis ensuite mon graphe qui se dessine, du coup comme ça se produit à chaque déplacement de la fenêtre ça clignote vraiment beaucoup, je vois beaucoup plus le fond de la fenêtre que le graphe.
L'autre moment où celà se produit est quand je redimensionne ma fenêtre, là aussi le fond de la fenêtre se dessine avant mon graphe et c'est vraiment horrible.
Est-ce qu'il y a un style de fenêtre spécial à indiquer pour qu'elle ne redessine pas son fond avant le WM_PAINT, ou dois-je effectuer une sorte de subclassement, si oui sur quoi ?
Le fond des fenetres est dessiné lors du message WM_ERASEBKGND.
Généralement on ne traite pas ce message, et c'est DefWindowProc qui se
charge de dessiner le fond de ta fenetre avec le brush de la fenetre.
Tu peux donc le traiter, et ne rien dessiner, ou dessiner partielement
le fond (avec les fonctions de cliping, comme ExcludeClipRect).<link href="../../../../../css/ie4.css" type="text/css" rel="stylesheet" /><!-- @ --><link href="../../../../../css/inetsdk.css" type="text/css" rel="stylesheet" /><!-- @ --><style type="text/css"><![CDATA[
PRE.clsCode { font-size:110%; }
PRE.clsSyntax { font-size:100%; }
TD DIV.clsBeta { display:none;}