esaye tuot simplement :
Code:
1
2
3
4
5 void CInterface3Dlg::OnButton3() { WriteWindowToDIB("test.bmp", this); MessageBox("fini"); }
Version imprimable
esaye tuot simplement :
Code:
1
2
3
4
5 void CInterface3Dlg::OnButton3() { WriteWindowToDIB("test.bmp", this); MessageBox("fini"); }
oui ... j'avais pas pens� � enlever ce qu'il y avait en tro....Citation:
Envoy� par matazz
donc j'ai reessay� comme tu dis, et c'est pareil, si je double-clic sur l'icone du fichier cr��, il met "le dessin a �chou�", par contre je viens de remarquer que si je l'ouvre avec paint, il y a bien un rectangle de la taille de la CDialog mais il est tout blanc, alors que j'avais dessin� dans la fen�tre...
c'est parceque tu est en debug, build la release et execute la...
eh non.. c'est toujours pareil... meme avec la release
ben �coute je t'avoue que je sais pas trop....
t'est sous quelle OS ?
je suis sous windows xp
ben moi aussi....
how bizarre !!!
Bonjour,
je n'ai toujours pas r�solu mon probl�me, mais en comparant l'image que je cr�e avec une image cr��e avec Paint, � l'aide d'un �diteur h�xad�cimal, je me suis rendue compte que le 13�me octet de mon image valait 4 alors que dans l'autre image il vaut 0. En mettant 0 �galement dans mon image, j'arrive � l'afficher.
Il doit donc y avoir un probl�me au moment o� on �crit l'entete...
Est ce que vous auriez une id�e?
merci
quelle est ta configuration d'�cran (surtout profondeur couleur 16 bits, 32bits...) ?
alors, pour la qualit� couleur, j'ai 24bits, ca peut venir de ca?
j'ai recommenc�, l'essai avec 16bits pour les couleurs de l'�cran, et j'ai toujours un 04 qui traine, mais c'est sur le 12eme octet ce coup ci. comme tout a l'heure en le changeant par 0 ca donne une image qui s'affiche.
Effectivement j'ai trouv� �a :
Car il semble que certains outils windows arrivent pas � le lire.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 //This is the tricky part of the code. It will open the BMP file //again, but in Binary Mode. Then, it will read the first 14 //bytes from the bitmap file. //It will change the 11th byte from 11 to 36. //It will change the 14th byte from 4 to 0 because this is the //basic requirement for the bitmap format. //So, it will support all PaintBrush Tools and thumbnail views //of Windows Explorer. CFile m_tempFile; //CBinFile is derived from CFile BYTE dummy=0;//14 //14 BYTE pBuf[14]; //11 BOOL fres=m_tempFile.Open(fname,CFile::modeReadWrite | CFile::typeBinary); UINT tt=m_tempFile.Read(pBuf,14); pBuf[13]=dummy;//will replace from 04 to 00 m_tempFile.SeekToBegin(); m_tempFile.Write(pBuf,14); m_tempFile.Close();
Tu as essay� avec Photoshop ?
je n'ai pas photoshop
je vais essay� de recommencer avec ce que tu m'as donn�
ah merci beaucoup!!!! ca marche enfin!!!
mais je n'ai pas tr�s bien compris le probl�me en fait... et selon la configuration de l'�cran il faudra changer le numero de l'octet � modifier?
merci encore!!!!!!
Apparement le probl�me vient de la m�thode d'�criture de la Bitmap qui n'est pas compatible avec MSPaint, l'explorer windows...
Pour ce qui est de la r�solution, disons que la m�thode cr�e une bitmap par copie du DC de la fenetre.
Donc si tu est en 16 Bits l'encodage du DC et donc de la bitmap enregistr�e sera en 16 bits, et donc l'en-t�te bitmap sera plus petit ce qui fait que l'octet probl�matique ne sera pas au m�me endroit...
C'est vrai que c'est un peu bancale comme m�thode...
Tout d�pend l'utiliastion que tu en as, si c'est pour un outil que tu vas distribu�, il vaut mieux pr�voir toutes les configurations possible (16,24,32 bits au minimum)...
merci beaucoup!!!
la m�thode devrait suffir pour l'instant