Comment effacer une bitmap prealablement dessiné avec BitBlt

Signaler
Messages postés
138
Date d'inscription
vendredi 10 janvier 2003
Statut
Membre
Dernière intervention
27 janvier 2009
-
Messages postés
138
Date d'inscription
vendredi 10 janvier 2003
Statut
Membre
Dernière intervention
27 janvier 2009
-
un exemple concret pour mieux comprendre:

j'affiche sur un dialogue un bitmap a l'endroit ou je veux a l'aide du clic gauche de la souris, le pb est que je voudrais pouvoir supprimer (ne plus afficher ou masquer ...) ce bitmap à l'aide du bouton droit !!!!!

NB : j'ai une image de fond dans mon dialogue , donc je ne peux pas redessiner un bitmap de la couleur du fond pour simuler l'effacement.
et le pb n'est pas le gestion des clics mais bien de masquer mon bitmap.

gege

2 réponses

Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
Tu affiches comment ce bitmap ? Dans WM_PAINT ou WM_LBUTTONDOWN ? Si c'est dans WM_LBUTTONDOWN, c'est pas bien, car lorsque tu feras passer une fenetre dessus ou lorsqu'elle perdra le focus, le bitmap ne sera plus la car la fenetre sera redessinée sans ton bitmap. Donc : si c'est le cas et si c'est que tu veux, tu n'as qu'a faire un InvalidateRect() lors de la reception de WM_RBUTTONDOWN. Si tu affiches dans WM_PAINT par contre, tu n'as qu'a faire un simple test avec un booleen par exemple :
...
case WM_RBUTTONDOWN:
flag = 1;
InvalidateRect(..);
break;
...
case WM_PAINT:
if (!flag) BitBlt(...);
...

+2(p - n)
Messages postés
138
Date d'inscription
vendredi 10 janvier 2003
Statut
Membre
Dernière intervention
27 janvier 2009

exact j'avais pas fais gaffe à ca,
j'affiche dans WM_LBUTTONDOWN

ps: j'utilise les MFC, tu as une methode pour ca ?

a part cela je dois jongler avec le 8ieme parametre de pDC->BitBlt pour tantot afficher , tantot masquer mon bitmap (je tatonne mais c'est pas parfait)

j'affiche avec SRCAND et j'efface avec .... je tatonne

gege