Loader une image

DjGonk Messages postés 40 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 8 octobre 2009 - 30 mai 2004 à 20:58
DjGonk Messages postés 40 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 8 octobre 2009 - 30 mai 2004 à 23:43
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

batrasog Messages postés 60 Date d'inscription mercredi 3 mars 2004 Statut Membre Dernière intervention 24 septembre 2004
30 mai 2004 à 21:11
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
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 25
30 mai 2004 à 21:24
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
0
DjGonk Messages postés 40 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 8 octobre 2009
30 mai 2004 à 23:23
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.
0
DjGonk Messages postés 40 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 8 octobre 2009
30 mai 2004 à 23:43
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
0