Utilisateur anonyme
-
3 oct. 2006 à 09:17
Utilisateur anonyme -
3 oct. 2006 à 17:35
Bonjour,
Voila tout d'abord je suis en C++ avec les MFC et la librairie GDI+.
J'ai une liste a droite qui m'affiche les images d'un dossier en miniature, et j'aimerais, lorque je clique sur une es images, qu'elle s'affiches en grand (320*240 par exemple) dans la picturebox d'à côté !
Or je ne sais pas vers quelles fonctions me tourner, car je crois qu'il doit y avoir beaucoup de mathémathiques en plus la dedans...!
Donc si vous connaisser ce genre de problèmes, les fonctions GDI+ qui vont avec, ou autres...
void CEssaiDlg::ChargeImage(int m_nSelectedItem)
{
//Nouvelle fonction utilisant la bibliothèque gdi+
using namespace Gdiplus;
CString sDossier;
CString strPath;
int m_nLargeurImageSource,m_nHauteurImageSource;
//double m_fRapportImage;
//double m_fAgrandissement;
LPCWSTR pszWide;
// Lecture du fichier image
strPath=m_VectorImageNames[m_nSelectedItem];
USES_CONVERSION;
pszWide= A2CW(strPath); //utilisation des macro de conversion string vers const wchar*
//Chargement de l'image
Bitmap BitmapSource(pszWide); //Chargement de l'image
//Dimensions de l'image source
m_nLargeurImageSource=BitmapSource.GetWidth();
m_nHauteurImageSource=BitmapSource.GetHeight();
AfficheImage(&BitmapSource);
}
void CEssaiDlg::AfficheImage(Bitmap *BitmapAffiche)
{
//La variable m_bAfficheImage peut être utilisée pour autoriser l'affichage de l'image
//Surface d'affichage
CDC* pDC= m_cImageRect.GetDC();
//Définition de l'objet graphique
CRect m_Rect;
//m_cImageRect.GetWindowRect(&m_Rect);
m_cImageRect.GetClientRect(&m_Rect);
Graphics graphicAffiche(pDC->m_hDC);
CBrush brush;
brush.CreateSolidBrush(RGB(0,0,0));
//fond noir
pDC->FillRect(m_Rect,&brush); //On a pris le getdc de m_cImageRect donc le pt 0,0 est le bord de m_cImageRect
//image
//graphics.DrawImage(image, ImageDesRectf, SrcRectf,UnitPixel,NULL);