CyberP
Messages postés283Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention 4 juillet 2007
-
21 avril 2004 à 10:41
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 2006
-
22 avril 2004 à 23:13
Est ce que quelqu'un sait mettre en transparence une couleur d'un HBITMAP (en l'occurence RGB(255,0,255)) ?
J'ai cherché une demi heure dans le MSDN sans succès... (en tout cas rien pour une simple bitmap)
CyberP,
Celui qui dit que toute question a une réponse
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 22 avril 2004 à 16:17
Oui, sauf que, comme je te l'ai dit, TransparentBlt n'est pas compatible avec Windows 95/98/NT4 ! Donc, si tu compte déployer ton appli sous ses systèmes, ca ne marcheras pas !
DarK Sidious
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 22 avril 2004 à 23:11
petite explication sur :
dwWidthBytes = 4*((3*info.bmWidth+3)/4);
dans l'exemple que j'avais donné, il y avais 24 bits par pixels soit 3 octets, donc pour savoir la taille en octet d'une ligne il suffit de faire :
3*info.bmWidth
mais dwWidthBytes doit être un multiple de 4, donc pour cela il y a plusieur possibilité :
1) tester le reste de la divsion par 4 et ajouter 1 si non nul :
dwWidthBytes = 3*info.bmWidth;
if(dwWidthBytes%4 !=0)
dwWidthBytes++;
2) réaliser la petite astuce du dessus (donne le même résultat)
Vous n’avez pas trouvé la réponse que vous recherchez ?
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 22 avril 2004 à 23:13
petite explication sur :
dwWidthBytes = 4*((3*info.bmWidth+3)/4);
dans l'exemple que j'avais donné, il y avais 24 bits par pixels soit 3 octets, donc pour savoir la taille en octet d'une ligne il suffit de faire :
3*info.bmWidth
mais dwWidthBytes doit être un multiple de 4, donc pour cela il y a plusieur possibilité :
1) tester le reste de la divsion par 4 et ajouter 1 si non nul :
dwWidthBytes = 3*info.bmWidth;
if(dwWidthBytes%4 !=0)
dwWidthBytes++;
2) réaliser la petite astuce du dessus (donne le même résultat)