Charger un BMP avec une OpenFileDialog et l'afficher dans un pictureBox .
Dragoon
Messages postés3Date d'inscriptiondimanche 24 mars 2002StatutMembreDernière intervention22 octobre 2003
-
21 oct. 2003 à 14:35
vaas
Messages postés2Date d'inscriptionsamedi 5 février 2005StatutMembreDernière intervention28 juin 2007
-
7 févr. 2005 à 15:37
Bonjour à tous,
Je ne suis pas un spécialiste du C++ et des MFC et je souhaiterais comprendre ce qui ne va pas dans mon programme.
Je voudrais que celui-ci affiche une image BMP dans un picture box après que l'utilisateur l'ai choisi via une boite de type OpenFileDialog. Ceci ne doit, je pense, pas etre trop difficile à effectuer dans la mesure ou la meme chose en VB ou Csharp est simplissime.
Voici mon code :
void CGestionImageDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
// m_image = nomImage;
// UpdateData(FALSE);
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CGestionImageDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
/// Chargement de l'image
void CGestionImageDlg::OnButtonParcour()
{
// TODO: Add your control notification handler code here
// TODO: Add your control notification handler code here
UpdateData(TRUE); // Récup de l'état des autres zones de saisie
// Définition des filtres pour l'ouverture des fichiers
char szFilters[]= "Images Bitmap (*.bmp)|*.bmp,*.BMP|Tout les fichiers (*.*)|*.*||";
// Création de la boite de dialogue d'ouverture de fichiers
CFileDialog dialogOuvrir (TRUE, "", "*.bmp", OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilters, this);
// Affichage de la boite de dialogue
// Affichage du bitmap dans le PictureBox de la feuille
if( dialogOuvrir.DoModal ()==IDOK )
{
CString cheminImage = dialogOuvrir.GetPathName();
// Ouverture et lecture du fichier
// Récupération du handle de l'iamge chargée
Ceci ne créé aucun messages d'eereur, mais au final l'image ne s'affiche pas. Je pense que mon probleme se situe autour de la fonction LoadImage(...), mais je ne vois pas ou et ceux malgré mes recherches (MSDN, Livres, Forums...)
Si quelqu'un a une idée ou une explication, j'en serais très heureux.
vaas
Messages postés2Date d'inscriptionsamedi 5 février 2005StatutMembreDernière intervention28 juin 2007 7 févr. 2005 à 15:37
Par contre moi je n'y arrive toujours pas jai copier le code de dragoon et fait les modif demandé par garslouche ais rien a faire il n'y a pas d'erreur explicite mai ne m'affiche toujours pas l'image y'a tilm des headers a mettre ou otre chose a faire pouyr ke cela fonctionne