[MFC - GDI] Redimensionnement Image
Bonjour,
Je développe sous Visual C++ 6.0 via MFC, et j'aimerai afficher une image redimensionnée sur une CStatic, à partir d'une image répertoire.
J'utilise pour cela GDI que j'ai découvert il y a peu.
Après consultation de la FAQ et de pas mal de documentations ici et ailleurs, je ne trouve pas la solution à mon problème.
Note : Sans passer par un Device Context, j'ai pu afficher mon image sans la redimensionner. -> seul le redimensionnement ne fonctionne pas.
Voilà mon code. ou est le problème selon vous ?!
Code:
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
|
//Création du handle sur le bitmap
HBITMAP hBitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(), "Z:\\image.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
// Création d'un DC par rapport au contexte courant
HDC hDCBmp = CreateCompatibleDC(NULL);
// Selection du Bitmap dans le contexte crée
HBITMAP hOldBmp = (HBITMAP)SelectObject(hDCBmp, hBitmap);
// récupération des Infos bitmap
BITMAP bmpInfo;
GetObject(hOldBmp, sizeof(bmpInfo), &bmpInfo);
// Structure pour le redimensionnement
CSize Size(bmpInfo.bmWidth /2 , bmpInfo.bmHeight /2);
// Redimensionnement de l'image dans le contexte
StretchBlt(hDCBmp,0, 0, Size.cx,Size.cy, hDCBmp, 0, 0,bmpInfo.bmWidth, bmpInfo.bmHeight,SRCCOPY);
// Séléction de l'image redimensionnée dans le contexte
SelectObject(hDCBmp, hOldBmp);
//Affichage
m_imgz.SetBitmap(hOldBmp);
m_imgz.Invalidate();
//Déstruction du contexte
DeleteDC(hDCBmp); |
Merci d'avance !
:roll: