Bonjour Bonjour
J'aimerai savoir comment faire pour enregistrer des dessins, fait dans un CDC, dans un CBitmap, un peu � la mani�re de Paint mais sans la gestion de fichier.
Je suis sous VS2005 et toutes infos me sera utile, Merci ^^
Bonjour Bonjour
J'aimerai savoir comment faire pour enregistrer des dessins, fait dans un CDC, dans un CBitmap, un peu � la mani�re de Paint mais sans la gestion de fichier.
Je suis sous VS2005 et toutes infos me sera utile, Merci ^^
C'est simple, dans un DC il y a d�j� un Bitmap.
Si tu as plein acc�s au DC (un MemoryDC par exemple), tu peux s�lectionner un autre bitmap � la place de celui qui est dedans, et travailler sur le bitmap ainsi lib�r�.
Si tu n'as pas plein acc�s au DC, tu devras cr�er un MemoryDC avec un bitmap de la bonne taille, faire un BitBlt() d'un DC � l'autre, puis isoler le bitmap de ton MemoryDC.
Je ne sais pas trop comment on fait �a en MFC, j'ai l'habitude d'utiliser l'API Win32. Mais bon, �a ne doit pas �tre trop diff�rent.
Pour Win32:
- CreateCompatibleDC() pour cr�er le memoryDC.
- CreateCompatibleBitmap(DC d'origine, pas le memoryDC) pour cr�er un bitmap du m�me type/m�me r�solution couleur, ou CreateDIBSection() pour cr�er un bitmap avec sa propre palette et r�solution couleur.
- SelectObject() pour s�lectionner ou isoler un bitmap d'un DC.
- BitBlt(..., SRCCOPY) pour la copie.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
tu peux regarder dans la faq dans un premier temps http://c.developpez.com/faq/vc/?page...iteWindowToDIB
Merci pour les infos.
La FAQ c'est la 1ere chose que je lis... mais j'avais pas comprit ce passage...
Et d'ailleurs je doit toujours pas avoir comprit car ce que je fais ne marches pas :/
J'obtient une image aux bonnes dimmensions mais noire :/
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 list.Create(40, 10, ILC_COLOR, 3, 3); CBitmap bitmap ; CDC * dc; CDC memDC; CRect rect; dc = GetDC() ; memDC.CreateCompatibleDC(dc); bitmap.CreateCompatibleBitmap(dc, 40,10 ); CBitmap* pOldBitmap = memDC.SelectObject(&bitmap); CBrush br ; br.CreateHatchBrush(2,RGB(255,0,0)) ; memDC.SelectObject(&br) ; memDC.Rectangle(0,0,40,10) ; list.Add(pOldBitmap,RGB(0,0,255)) ; memDC.BitBlt(0, 0, 40,10, dc, 0, 0, SRCCOPY); memDC.SelectObject(pOldBitmap); c_box.SetImageList(&list) ;
Je suis certain que ca vient de l'ordre dans lequel je met les fonctions mais l� je vois pas trop...
�a fait quoi, �a ?
Code : S�lectionner tout - Visualiser dans une fen�tre � part list.Add(pOldBitmap,RGB(0,0,255)) ;
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Partager