begin process at 2008 07 20 09:33:41
1 213 150 membres
71 nouveaux aujourd'hui
14 166 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Chargement image dans un contrôle "static". [ Windows / GUI ] (mohdaef)

Chargement image dans un contrôle "static". le 02/04/2008 21:07:44

mohdaef
Bonsoir.

Je travaille avec les APIs Windows et j'ai besoin de charger plusieur images dans une fenêtre, j'ai trouver le moyen de le faire avec les controles "static". Cependant l'image ne se charge pas elle ne s'affiche pas.

    Comment dois-je m'y prendre pour afficher cette image, où bien y aurait-il une autre solution plus intéressante ?

Merci pour votre aide.

Re : Chargement image dans un contrôle "static". le 02/04/2008 21:34:49

vecchio56
(Admin CS)
Tu utilises bien STM_SETIMAGE ou STM_SETICON? Es-tu sûr de passer un handle d'image valide?

_____________________________________
Un éditeur de ressources gratuit pour Windows


Re : Chargement image dans un contrôle "static". le 02/04/2008 21:48:02

mohdaef
Bonsoir.

Je procède ainsi :

        HWND hstatic = CreateWindow(
        "STATIC",
        0,
        WS_CHILD|WS_VISIBLE|SS_BITMAP,
        10,10,
        100,60,
        hwnd,
        0,
        0,
        NULL);

        HANDLE hImage = LoadImage(NULL,(LPCTSTR)"img.bmp",IMAGE_BITMAP,50,50,LR_SHARED);
        SendMessage(hstatic,STM_SETIMAGE,(WPARAM)IMAGE_BITMAP,(LPARAM)hImage);

Re : Chargement image dans un contrôle "static". le 02/04/2008 22:09:49

vecchio56
(Admin CS)
Ca m'a pas l'air mal... Tu as vérifié que hImage est OK?

Petite remarque : (LPCTSTR)"img.bmp" -> Tu devrais éviter ce genre d'écriture (le cast est inutile, et si jamais tu passes en unicode, ca compilera et ca fera une erreur à l'exécution)

_____________________________________
Un éditeur de ressources gratuit pour Windows


Re : Chargement image dans un contrôle "static". le 02/04/2008 22:18:35

jfrancois
HANDLE hImage = LoadImage(NULL,(LPCTSTR)"img.bmp",IMAGE_BITMAP,50,50,LR_SHARED);

Avec cette instruction, img.bmp est un bitmap en ressource (il n'y a pas LR_LOADFROMFILE) !
Est-ce bien le cas ? car ce nom fait plutôt penser à un fichier !

Jean-François


Re : Chargement image dans un contrôle "static". le 02/04/2008 22:31:22

yann_lo_san
Salut,
Si c'est bien un nom de fichier que tu donnes et pas une ressource il faut mettre  le flag : LR_LOADFROMFILE


Tu peux aussi utiliser le static ownerdraw en gérant le msg WM_DRAWITEM :

hWndStatic = CreateWindow("STATIC", "staticControl",
            WS_CHILD | WS_VISIBLE | SS_OWNERDRAW,
            ect...

// le msg dans wndProc
 case WM_DRAWITEM:
     lpdis = (LPDRAWITEMSTRUCT)lParam;
     // on dessine ce qu'on veut avec le hdc 
     //  lpdi->hDC;
     // pour une image : SelectObject() et BitBlt()
     return TRUE;

Re : Chargement image dans un contrôle "static". le 02/04/2008 22:33:41

mohdaef
Oui parce que c'est un fichier. Il faudrait donc que je remplace LR_SHARED par LR_LOADFROMFILE ?

Re : Chargement image dans un contrôle "static". le 02/04/2008 22:36:06

mohdaef
Effectivement, sa marche nickel comme cela. Merci pour ton aide, je m'en souviendrais maintenant.

A plus.

Re : Chargement image dans un contrôle "static". le 02/04/2008 22:36:12

vecchio56
(Admin CS)
Tu peux garder les deux : LR_SHARED | LR_LOADFROMFILE

_____________________________________
Un éditeur de ressources gratuit pour Windows



Classé sous : image, chargement, contrôle, static

Participer à cet échange

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS