Charger une image à partir du chemin

Signaler
Messages postés
130
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
7 juillet 2012
-
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
-
Bonjour/soir,

J'aimerais savoir comment faire pour charger une image dans un controle (button) à partir de son emplacement sur le disque.

Merci.
Tibabou

11 réponses

Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
6
Bonjour,



char * nomdufichier="C:\\image.bmp";

HBITMAP IMG = (HBITMAP)LoadBitmap (hThisInstance,nomdufichier) ;

// hThisInstance est l'instance du programme



SendMessage(hwndbouton, STM_SETIMAGE ,IMAGE_BITMAP ,IMG) ;

// hwndbouton est l'HWND du boutton



Merci,



Le créateur du site http://victorlogiciels.com
Messages postés
130
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
7 juillet 2012

Houla...J'ai plein d'erreurs. Il me manque pas une bibliothèque ?...
--------------------Configuration: steamwindow - Win32 Debug--------------------
Compiling...
main.cpp
main.cpp(32) : error C2065: 'HBITMP' : undeclared identifier
main.cpp(32) : error C2440: 'initializing' : cannot convert from 'int' to 'struct HBITMAP__ *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
main.cpp(32) : error C2146: syntax error : missing ';' before identifier 'LoadBitmapA'
main.cpp(33) : error C2664: 'SendMessageA' : cannot convert parameter 1 from 'const int' to 'struct HWND__ *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
Error executing cl.exe.


steamwindow.exe - 4 error(s), 0 warning(s)

Tibabou
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
6
Bonjour,




> main.cpp(32) : error C2065: 'HBITMP' : undeclared identifier



Il me semble que j'ai mais HBITMAP et pas HBITMP




char * nomdufichier="C:\\image.bmp";

HBITMAP IMG = (HBITMAP)LoadBitmap (hThisInstance,nomdufichier) ;

// hThisInstance est l'instance du programme



SendMessage(hwndbouton, STM_SETIMAGE ,IMAGE_BITMAP ,(wParam)IMG) ;

// hwndbouton est l'HWND du boutton





Merci,



Le créateur du site http://victorlogiciels.com
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
6
Bonjour,



#include <windows.h>





Merci,



Le créateur du site http://victorlogiciels.com
Messages postés
130
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
7 juillet 2012

Plus qu'une erreur, j'ai mis IDC_BUTTON1 pour le "HWND du bouton".
Je ne sais pas ce que c'est le "HWND"
Que dois-je mettre ?

Tibabou
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
6
Bonjour,



Tu le converti :

HWND hwndbouton = GetDlgItem(hwnd,IDC_BUTTON1
);

// hwnd est le HWND de la fenêtre principale



Merci,



Le créateur du site http://victorlogiciels.com
Messages postés
130
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
7 juillet 2012

Voilà ce que ça me donne maintenant:

main.cpp(34) : error C2664: 'SendMessageA' : cannot convert parameter 4 from 'struct HBITMAP__ *' to 'long'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
Error executing cl.exe.

Merci pour ta patience.
Tibabou
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
6
Bonjour,



Si tu as déjà remplacé:


SendMessage(hwndbouton, STM_SETIMAGE ,IMAGE_BITMAP ,IMG) ;




par :


SendMessage(hwndbouton, STM_SETIMAGE ,IMAGE_BITMAP ,(wParam)IMG) ;



essai:



SendMessage(hwndbouton, STM_SETIMAGE ,IMAGE_BITMAP ,(long)IMG) ;



sinon essai les deux et dis le code final si c'est bon





Merci,



Le créateur du site http://victorlogiciels.com
Messages postés
130
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
7 juillet 2012

Merci, ça marche avec:
SendMessage(hwndbouton, STM_SETIMAGE ,IMAGE_BITMAP ,(long)IMG) ;

En revanche, mon bouton ne met pas l'image. J'ai créé un bouton avec comme propriété "bitmap". Il n'y a plus de texte dessus mais pas d'image non plus...

Tibabou
Messages postés
130
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
7 juillet 2012

Tu sais pas d'où peut venir le problème ? Toutes les sources que j'ai trouvées sur ce site utilisent des images déjà importées.

Tibabou
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
6
Bonjour,



Utilise les ressources.



Merci,



Le créateur du site http://victorlogiciels.com