Comment effacer une bitmap prealablement dessiné avec BitBlt

gege1024 Messages postés 138 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 27 janvier 2009 - 5 nov. 2005 à 16:49
gege1024 Messages postés 138 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 27 janvier 2009 - 5 nov. 2005 à 17:24
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

cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
5 nov. 2005 à 17:10
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)
gege1024 Messages postés 138 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 27 janvier 2009
5 nov. 2005 à 17:24
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
Rejoignez-nous