clignotement d'image lors d'un changement de dim de fenetre

clignotement d'image lors d'un changement de dim de fenetre - C++ - Programmation

Marsh Posté le 27-02-2006 à 19:44:28    

bonjour,
 
J'ai écrie un programme qui affiche une image dans une application multidocument (MDI) avec les mfc.
lorsque je redimensionne la fenetre qui contient l'image mon image clignote car apperement windows redessine le font de la fenetre avant de faire appel a la fonction ondraw, (et donc efface l'image precedemment affiché juste avant que la fonction ondraw la réaffiche).
Je voudrais savoir s'il est possible de specifier une zone (la zone ou mon image est affiché) ou le font de la fenetre n'est pas redessiné et ainsi eviter ces clignotement.
Pour être plus clais ce que je voudrai, c'est specifier une zone de ma fenêtre enfant qui n'est pas éffacé lorsque j'apelle la fonction ondraw qui va redessiner par dessus.
 
Je met le morceau de code si cela peut aider. Merci d'avance

Code :
  1. void CViewerView::OnDraw(CDC* pDC)
  2. {
  3. CViewerDoc* pDoc = GetDocument();
  4. ASSERT_VALID(pDoc);
  5. if (!pDoc)
  6.  return;
  7. CvImage * working_image=((CViewerDoc *)GetDocument())->GetImage();
  8.     if(working_image!=NULL)
  9. {
  10.         DisplayImage(working_image, pDC);
  11. }
  12. // TODO : ajoutez ici le code de dessin pour les données natives
  13. }


Reply

Marsh Posté le 27-02-2006 à 19:44:28   

Reply

Marsh Posté le 27-02-2006 à 20:08:45    

La fenêtre clignote parce que le fond est redessiné à chaque modification de la taille. Si tu veux l'éviter tu peux redéfinir le gestionnaire de WM_ERASEBKGROUND pour qu'il ne fasse rien ou dessiner le bitmap à ce moment là (penser à cliper le bitmap pour ne pas dessiner 2 fois d'affilée à l'emplacement du bitmap ce qui produirait le même effet de clignottement)


Message édité par slash33 le 27-02-2006 à 20:09:18
Reply

Marsh Posté le 27-02-2006 à 20:20:27    

Merci, ca vas bien m'aider, par contre qu'est que tu apelles cliper un bitmap ?

Reply

Marsh Posté le 27-02-2006 à 23:32:34    

GetClipBox, IntersectClipRect, SelectClipRgn...
http://msdn.microsoft.com/library/ [...] g_6583.asp
 
Bref, les joies du GDI!


Message édité par slash33 le 27-02-2006 à 23:33:39
Reply

Marsh Posté le 28-02-2006 à 10:42:28    

Merci, Ca marche grace à toi ^^

Reply

Marsh Posté le 28-02-2006 à 13:18:24    

Pas de quoi. Mais je n'ai fait que t'indiquer les outils.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed