DESSINER UN BITMAP TRANSPARENT (WIN32)

cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 - 12 mai 2004 à 21:38
christophelande Messages postés 15 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 26 février 2006 - 5 avril 2005 à 13:49
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/22723-dessiner-un-bitmap-transparent-win32

christophelande Messages postés 15 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 26 février 2006
5 avril 2005 à 13:49
Je me suis inspirer de ta source pour créer un bouton transparent :
http://www.cppfrance.com/code.aspx?ID=30563
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
13 mai 2004 à 21:22
n'oublie pas que le bitmap dans lequel on recopie est monochrome avec une couleur de fond par défaut au blanc. Donc je suppose que lorsque la fct BiBlt recopie le bitmap, étant donné qu'il n'y a que 2 couleurs possibles, il mappe ensemble les couleurs des fonds et met le reste au noir.
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
13 mai 2004 à 16:57
Oui mais comme on fais un COPY, le couleur du fond ne drevrait pas intervenir
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
12 mai 2004 à 21:58
Ouais, j'ai trouvé ce truc dans un bout de code et j'ai été assez surpris mais ça marche!!!

tous les pixels de l'image source de la couleur du fond seront mise au blanc et les autres au noir.

je pense pas qu'on puisse faire plus simple.
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
12 mai 2004 à 21:38
Je ne comprends pas une truc, pour creer le mask, tu as juste besoin de faire :
SetBkColor(hDCBmp, clrTransparent);
BitBlt(hDCBmpMask, 0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight, hDCBmp, 0, 0, SRCCOPY);

??
Rejoignez-nous