MFC: Probleme !!!!

MFC: Probleme !!!! - Programmation

Marsh Posté le 17-11-2001 à 22:03:20    

Je suis sous Visual C++ 6.0 sp4, Win2K sp2.
 
Voila je creer une vue Classe qui derive de CView dans la quelle je trace des points, des droites etc.... . tous ce passse bien je vois mes dessins, le probleme c'est quand une fenetre recouvre ma fenetre et je la refait passer devant le contenu de cette dernier est effacer. comment puisje recuperé le contenu de la zone qui à été recouverte.
 
Merci d'avance pour votre aide.

Reply

Marsh Posté le 17-11-2001 à 22:03:20   

Reply

Marsh Posté le 17-11-2001 à 23:13:05    

bah fo que tu recup la zone qui a ete effacer (ca doit se faire via le truchement d'un OnPaint ou OnDraw, je sais pu), et que tu redessine la zone affectée
 
(avec tes fonction GDI et tout le tatouin)
 
Sinon l'autre solution c'est d'utiliser un DC annexe . tu barbouille dans ce DC annexe, et quand t'as fini de barbouiller, tu blit ce DC vers le DC de ta fenetre
 
et lors d'un onPaint tout ce que t'as a faire c'est de blitter du DC annexe vers le dc de ta fenetre (tu blit que la region a redessiner)
 
(voir createCompatibleDC pour la creation du dc annexe)

Reply

Marsh Posté le 18-11-2001 à 03:45:50    

ouhai onpaint est l'evenement qui remet à jour ton ecran GDI donc c'est la dedans qu'il faut que tu mettes ton bout de code qui affiche les points & droites à l'ecran  :p

Reply

Marsh Posté le 18-11-2001 à 15:40:54    

Mais comment je peux recuperer la partie cache pour ensuite la rétablir. Dans la doc MSDN je ne vois rien d'explicite.

Reply

Marsh Posté le 18-11-2001 à 16:10:11    

phlb a écrit a écrit :

Mais comment je peux recuperer la partie cache pour ensuite la rétablir. Dans la doc MSDN je ne vois rien d'explicite.  




 
 
La partie cachée est perdue . Soit tu la redessine avec les fonctions GDI soit tu fais comme j'ai dit : un buffer annexe (ou si y'a une autre méthode, je serais content de l'apprendre :) )

Reply

Marsh Posté le 18-11-2001 à 17:05:24    

C'est bon j'ai toruvé, avec le double buffering.
 
Ce qui revient a ta solution chrisbk:
 
"Sinon l'autre solution c'est d'utiliser un DC annexe . tu barbouille dans ce DC annexe, et quand t'as fini de barbouiller, tu blit ce DC vers le DC de ta fenetre ".
 
Merci pour votre aide.
A+

Reply

Sujets relatifs:

Leave a Replay

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