Loader une image

Signaler
Messages postés
40
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
8 octobre 2009
-
Messages postés
40
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
8 octobre 2009
-
Slt je voudrais loader une image de mes resouces dans un controle static: mon code c'est:

CStatic *set=(CStatic*) (GetDlgItem(IDC_STATIC_COUVL));
CRect Rect;
set->GetWindowRect(Rect);

HBITMAP hBitmap = (HBITMAP)LoadImage( 0,MAKEINTRESOURCE(IDC_INDISP),IMAGE_BITMAP,Rect.Width() , Rect.Height(), LR_LOADFROMFILE| LR_CREATEDIBSECTION | LR_DEFAULTSIZE);

set->ModifyStyle ( 0, SS_BITMAP );
set->SetBitmap( hBitmap);

le prob c qu'a l'affichage j'ai un static qui ne m'affiche rien, gris.
Comment faire merci!

4 réponses

Messages postés
60
Date d'inscription
mercredi 3 mars 2004
Statut
Membre
Dernière intervention
24 septembre 2004

ligne de commande dans la ressource :
TEST BITMAP "C:/...test.bmp"
mettre HBITMAP hBitmap; au début du programme puis
hBitmap = LoadBitmap (FirstInstance,"TEST") ; et enfin
SendMessage(staticbitmap, STM_SETIMAGE ,IMAGE_BITMAP ,(long) hBitmap);
pour l'afficher dans staticbitmap
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
22
salut

je ne suis pas spécialiste du MFC mais je pense que GetDlgItem ne renvoie pas un pointeur vers un CStatic mais un handle du static :

CStatic set;
set.Attach(GetDlgItem(IDC_STATIC_COUVL));
CRect Rect;
set.GetWindowRect(Rect);

HBITMAP hBitmap = (HBITMAP)LoadImage( 0,MAKEINTRESOURCE(IDC_INDISP),IMAGE_BITMAP,Rect.Width() , Rect.Height(), LR_LOADFROMFILE| LR_CREATEDIBSECTION | LR_DEFAULTSIZE);

set.ModifyStyle ( 0, SS_BITMAP );
set.SetBitmap( hBitmap);

car CStatic dérive de CWnd

mais je ne suis pas sur

ShareVB
Messages postés
40
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
8 octobre 2009

batrasog:
Y a pas moyen de faire autrement sans passer par le chemin de la bitmap car si elle et en ressource il doit y avoir moyen de la loader sans donner le chemin puisqu'elle est dans le projo?

ShareVb:
Si c que j'ai fait avec getdlgitem marche car j'ai essayé deja de loader une image presente sur mon disque et non presente dans les ressources du projet et ça affiche bien.
Messages postés
40
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
8 octobre 2009

ca y est sa marche:

CStatic *set=(CStatic*) (GetDlgItem(IDC_STATIC_COUVL));
//CRect Rect;
//set->GetWindowRect(Rect);
HBITMAP hbitmap;
hbitmap = ::LoadBitmap(GetModuleHandleNULL),
MAKEINTRESOURCE(IDB_INDISP));
set->ModifyStyle ( 0, SS_BITMAP );
set->SetBitmap( hbitmap);

Mais le probleme c que ma ressource n'est pas a la taille du static comment faire? en utilisant le CRect