2010-10-07 18 views

Répondre

1

Vous devez appeler InvalidateRect pour la fenêtre avec le paramètre bErase réglé sur TRUE afin qu'il s'effacer avant la WM_PAINT est générée.

Ceci est souvent requis lorsque la fenêtre est un contrôle de texte statique, car ceux-ci ne s'effacent pas automatiquement lorsque vous modifiez leur valeur.

Assurez-vous que votre fenêtre traite correctement WM_ERASEBKGND et que la classe de fenêtre n'a pas de pinceau de fond NULL, car c'est le mécanisme utilisé par InvalidateRect pour effectuer l'effacement.

0

Vous pouvez tout simplement FillRect sur l'ancien premier texte ...

+0

Oui, mais il ne se rafraîchit pas lorsque j'y dessine un rectangle. – user963241

0
HDC hdc = GetDC(NULL); //get windows handle whaterver if urs 
HRGN hrgn; 

//get that specific region and repaint it by following line 

hrgn = CreateRectRgn(10, 10, 100, 100); 
SelectClipRgn(hDC, hrgn); 
PaintDesktop(hDC);