Aide sur les dialogue box

Résolu
cs_Stubbornman Messages postés 80 Date d'inscription lundi 18 février 2002 Statut Membre Dernière intervention 12 janvier 2007 - 6 juin 2005 à 11:29
akalys Messages postés 31 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 6 janvier 2010 - 21 févr. 2008 à 18:05
Avant tout, je precise que je travaille sous VC++ 6 et que je cree mes boites de dialogue a l'aide d'une resource.

Dans mon cas, j'ai insere lors de la creation de la dialogue box un certain nombre d'images, et j'aimerais pouvoir les afficher a ma convenance. Par exemple: pous noter un element (un livre par exemple), plutot que de mettre betement 10/10, j'aimerais afficher un certain nombre d'etoiles (c'est assez courant dans les logiciels). Donc pour ce faire, j'ai cree deux images: une etoile pleine, et une vide. Je les ai inserees l'une sur l'autre dans mon dialogue box et je voudrais afficher soit l'une soit l'autre en fonction du besoin.

J'ai parcouru l'aide de long en large a la recherche de la fonction magique, mais j'ai rien trouve. Alors si vous savez comment faire, toute aide sera la bien venue.Merci d'avance.

13 réponses

cs_Stubbornman Messages postés 80 Date d'inscription lundi 18 février 2002 Statut Membre Dernière intervention 12 janvier 2007
6 juin 2005 à 22:30
Ca y est ca marche....
En fait le probleme venait du fait que je n'avais pas coche l'option 'Visible' dans les proprietes de l'item Picture de la resource.

En tout cas merci de ton aide vecchio56.
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
6 juin 2005 à 11:36
Ton image tu ne l'initilise pas dans le fichier ressource directement, tu l'initialise dans ton programme avec STM_SETIMAGE
0
cs_Stubbornman Messages postés 80 Date d'inscription lundi 18 février 2002 Statut Membre Dernière intervention 12 janvier 2007
6 juin 2005 à 20:16
J'ai bein essaye d'utiliser STM_SETIMAGE, mais rien a faire, l'image ne s'affiche pas...

Voici un morceau du code:

HBITMAP hGoodBmp, hBadBmp;
hGoodBmp = (HBITMAP)LoadImage(hInst,"Good.bmp",IMAGE_BITMAP,0,0,LR_DEFAULTSIZE);

HWND bmp = GetDlgItem(hDlg,IDC_DIFFICULTY_BMP_1);
SendMessage(bmp, STM_SETIMAGE ,IMAGE_BITMAP ,(LPARAM)hBadBmp);
ShowWindow(bmp,SW_SHOW);

Si vous voyez pourquoi ca ne fonctionne pas...
Merci d'avance pour l'aide.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
6 juin 2005 à 20:21
Pas sur que ton LoadImage soit correct. Si tu veux spécifier un nom de
fichier extérieur, utilise plutot LoadBitmap. Regarde en tous cas si
l'appel à LoadImage n'a pas échoué
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Stubbornman Messages postés 80 Date d'inscription lundi 18 février 2002 Statut Membre Dernière intervention 12 janvier 2007
6 juin 2005 à 20:24
Comment puis-je verifier si l'ouverture du bitmap s'est bien passé???
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
6 juin 2005 à 20:27
Tu regardes la valeur de hGoodBmp juste après l'appel de LoadImage
(avec ton debugger ou avec des MessageBox par exemple). MSDN dit que si
la fonction a échoué elle retourne NULL (comme une grosse partie des
API win32: If the function fails, the return value is NULL).
0
cs_Stubbornman Messages postés 80 Date d'inscription lundi 18 février 2002 Statut Membre Dernière intervention 12 janvier 2007
6 juin 2005 à 22:08
J'ai resolu le probleme du LoadBitmap cependant, l'image ne s'affiche toujours pas... auriez-vous une idee???

HBITMAP hGoodBmp, hBadBmp;
hGoodBmp = (HBITMAP)LoadBitmap(hInst, MAKEINTRESOURCE(IDB_GOOD));
if (hGoodBmp == NULL)
{
LPVOID lpMsgBuf;
FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0,
NULL
);
MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );
LocalFree( lpMsgBuf );
}

HWND bmp = GetDlgItem(hDlg,IDC_DIFFICULTY_BMP_1);
SendMessage(bmp, STM_SETIMAGE ,IMAGE_BITMAP ,(LPARAM)hGoodBmp);

Merci pour votre aide
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
6 juin 2005 à 22:11
J'ai un petit doute: IDC_DIFFICULTY_BMP_1 est bien l'ID du static? Si
oui, c'est peut être que tu ne fais pas ce code au bon endroit. Essaie
de le faire par exemple dans WM_INITDIALOG
0
cs_Stubbornman Messages postés 80 Date d'inscription lundi 18 février 2002 Statut Membre Dernière intervention 12 janvier 2007
6 juin 2005 à 22:15
IDC_DIFFICULTY_BMP_1 est en effet l'ID du static, et je fais deja ce code dans WM_INITDIALOG...
Ca pose un probleme.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
6 juin 2005 à 22:17
Tu n'a pas oublié de mettre le style SS_BITMAP au static?
0
cs_Stubbornman Messages postés 80 Date d'inscription lundi 18 février 2002 Statut Membre Dernière intervention 12 janvier 2007
6 juin 2005 à 22:22
Ben en fait y'a un truc que je comprend pas...
IDC_DIFFICULTY_BMP_1 c'est l'ID d'un element PICTURE d'une resource. Je ne sais donc pas comment faire pour lui mettre le style SS_BITMAP. J'ai juste specifie dans les proprietes de la Picture qu'il sagissait d'un Bitmap...
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
6 juin 2005 à 22:27
C'est bon alors, ca rajoute ce style automatiquement. Donc normalement
pas de problème, regarde la valeur de retour du SendMessage, il faut
que tu voies à quel moment il y a un problème
0
akalys Messages postés 31 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 6 janvier 2010
21 févr. 2008 à 18:05
Je fais exactement la même chose mais sa ne marche pas....

Dans les proprité de ton controle static, tu met image_bitmap et est ce que tu affiche ajoute l'image après dans l'onglet image des propriétés? Il se dégrise lorsque on selectionne image bitmap.

Vive le rugby XIII
0
Rejoignez-nous