[C++/MFC] double buffer et ActiveX ?

Hello,

Voici mon problème, j’utilise le CDHtmlDialog des MFC7.1 qui repose donc sur le contrôle ActiveX WebBrowser permettant d’afficher des trucs via le moteur d’Internet Explorer. Mon problème est que lorsque je passe d’une “page” à l’autre via Navigate(), l’affichage fait scintiller mon interface.

Alors j’ai partiellement résolu le problème avec une paire de LockWindowUpdate et UnlockWindowUpdate, ça flashouille moins, mais toujours un peu. Le problème est que je n’ai pas de contrôle sur l’affichage de l’ActiveX, il décide tout seul quand il veut afficher quelque chose et ne passe pas les handlers MFC OnPaint et compagnie, alors je ne peux pas utiliser le truc du CreateCompatibleDC à ce niveau là.

Quelqu’un a-t-il une suggestion ?

T’as essaye juste un ptit projet a lacon en winforms 2.0 avec le webbrowser control pour voir si ca fait pareil?

Non j’ai pas essayé ça. En fait le problème que j’ai c’est que tous les composants de la page web sont dessinés les uns après les autres, donc le fond d’abord et puis tout le reste. Ca dure l’espace d’un instant, mais ça se voit… Alors j’ai trouvé un truc qui ressemble à ce que je cherche, c’est « IHTMLWindow2::offscreenBuffering », qui d’après la MSDN :

[quote]When the property is set to true, objects are added to an offscreen buffer. Once all objects are
drawn, the contents of the offscreen buffer are made visible to the user.[/quote]

Mais hélas ça ne marche pas :confused: Et je ne parviens pas à trouver un exemple de code.