Afficher data BMP dans HWND

Résolu
cs_supergrey Messages postés 475 Date d'inscription vendredi 27 juin 2003 Statut Membre Dernière intervention 20 septembre 2010 - 12 avril 2006 à 10:57
Taron31 Messages postés 199 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 28 février 2008 - 12 avril 2006 à 20:12
Bonjour, dans mon programme j'ai récupérer les données d'une bitmap dans un tableau de char, j'ai modifier certaine valeur (edition bitmap) je voudrais maintenant afficher ca dans ma fenetre, je n'y arrive pas.
Quelqu'un pourrait m'aider?
Merci

6 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
12 avril 2006 à 18:09
Si tu a récupéré et que tu a garder exactement la meme structure de tableau que le bitmap utilise SetDIBitsToDevice. Sinon, tu peut utiliser SetPixel mais c'est très lent. Si tu utilise SetPixel, il te faut un DC mémoire que tu recopie sur ton DC principal avec BitBlt. C'est probablement pas trop claire pour toi alors voici une source exemple:


Imprimeur de BMP

___________________________________________
Les plus grands esprits trouvent toujours une solution
3
Taron31 Messages postés 199 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 28 février 2008
12 avril 2006 à 18:44
SAKingdom :
Dans le second cas où un DC mémoire serait utilisé, je sais comment ça fonctionne mais comment ferais-tu ? Parce que tu parles de SetPixel combiné avec BitBlt mais normalement BitBlt suffit à recopier un DC mémoire dans un DC principal afin de dessiner le bitmap en question, tu peux t'expliquer ?

___________________
MVS - Most Valuable Student ( Microsoft)
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
12 avril 2006 à 19:34
Bon je t'est poster une réponse dans ton courriel. Je te donnerais bien un exemple mais je suis pas sur mon PC.

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
12 avril 2006 à 19:38
Bon je te fais un exemple vulgaire:

HDC memdc = CreateCompatibleDC(GetDC(hWnd));

SetPixel(memdc, 5, 10, 0xFF00FF);

BitBlt(...);

___________________________________________
Les plus grands esprits trouvent toujours une solution
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
12 avril 2006 à 19:40
Si tu fait pas ça et que tu affiche plusieur pixel, tu va les mettre directement sur le DC de ta fenetre et il ne s'afficheron pas tous en même temps. L'effet peut etre asser étrange.

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
Taron31 Messages postés 199 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 28 février 2008
12 avril 2006 à 20:12
Ok merci pour l'info, donc il faut obligatoirement passer par un memDC...
Merci :-)

___________________
MVS - Most Valuable Student ( Microsoft)
0
Rejoignez-nous