Ouvrir une image

[Résolu]
Signaler
Messages postés
7
Date d'inscription
mardi 6 mai 2003
Statut
Membre
Dernière intervention
26 février 2007
-
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Bonjour,


J'essaye de charger une image à partir du disque dure en utilisant les MFC.


j'utilise le code suivant:


OPENFILENAME ofn; // common dialog box structure
char szFile[260]="";
HWND hwnd=NULL;
HANDLE hf; // file handle


// Initialize OPENFILENAME
ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hwnd;
ofn.lpstrFile = szFile;
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = "BMP\0*.bmp\0JPG\0*.jpg\0";
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;


if (GetOpenFileName(&ofn)==TRUE)
hf = CreateFile(ofn.lpstrFile, GENERIC_READ,0, (LPSECURITY_ATTRIBUTES) NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,(HANDLE) NULL);
UpdateData(TRUE);
ima.LoadBitmap(ofn.lpstrFile);
CStatic *CS = reinterpret_cast<CStatic *>(GetDlgItem(IDC_Image));
CS->SetBitmap(HBITMAP(ima));

seulement l'image ne s'affiche pas. elle s'affiche seulement si j'utilise une image à partie des ressources. quelqu'un peut m'aider????

5 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
LoadBitmap() est fait pour charger depuis une ressource, pas depuis un fichier.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Le retour de GetOpenFileName() est NON ZERO si réussit mais pas forcément TRUE (1).

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
7
Date d'inscription
mardi 6 mai 2003
Statut
Membre
Dernière intervention
26 février 2007

le probléme n'est pas la, si j'utilise
ima.LoadBitmap(IDC_BITMAP1.BMP); ça marche, mais

ima.LoadBitmap(ofn.lpstrFile); ça marche pas alors que je suis sure que le fichier est ouvert et le contenue de

ofn.lpstrFile est le fichier que j'essaye d'ouvrir.
J'attend votre aide.
Messages postés
7
Date d'inscription
mardi 6 mai 2003
Statut
Membre
Dernière intervention
26 février 2007

Bon, je te remercie pour ton aide, ce n'etait pas mentionner dans MSDN.
est ce que tu peux m'indiquer comment on fait pour charger d'un fichier??
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
exemple ici:
SELECTEUR IMAGE + APERCU (WIN32)
http://www.cppfrance.com/code.aspx?id=10644

ce n'est pas MFC, il te faudra adapter.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++