Intégrer une image dans un programme [Dev-cpp] [Résolu]

Messages postés
109
Date d'inscription
vendredi 8 avril 2005
Dernière intervention
15 mai 2007
- 1 juin 2005 à 21:13 - Dernière réponse :
Messages postés
1
Date d'inscription
jeudi 24 septembre 2009
Dernière intervention
24 septembre 2009
- 24 sept. 2009 à 19:36
Salut!!

Je me demandais si quelqu'un savait comment intégrer une image dans un exécutable, et pouvoir l'utiliser ensuite...

Est-ce que quelqu'un peut m'aider? merci!

by_rabbit_08
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
56
Date d'inscription
samedi 3 juillet 2004
Dernière intervention
30 juin 2008
- 1 juin 2005 à 22:45
3
Merci
Bah si l'image se situe dans la ressource, il n'y a pas énormément de difficultés :)
C'est presque pareil sauf que à la place du répertoire, tu mets le nom de la ressource, exemple :

hBitmap = LoadImage(hInst, MAKEINTRESOURCE(MA_RESSOURCE), IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION);

La le flag par contre est différence vu qu'il est charger à partir de la ressource :)
Par contre, il faut pas oublier dans le fichier *.rc de mettre :
MA_RESSOURCE BITMAP DISCARDABLE "bitmap.bmp"
ainsi que dans le fichier resource.h :
#define MA_RESSOURCE 102
Par exemple :)

Ca fait une éternité que j'ai pas codé avec Dev-C++ mais ca devrait marcher :)

Amicalement,
The Destiny

Merci cs_thedestiny 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cs_thedestiny
Messages postés
56
Date d'inscription
samedi 3 juillet 2004
Dernière intervention
30 juin 2008
- 1 juin 2005 à 21:38
0
Merci
Oui c'est possible d'intégrer une image dans les ressources.
Après pour l'utiliser, ca dépend ce que tu veux faire et la il y a 2 cas de figures :
1- Tu veux l'extraire de l'application
2- Tu veux l'afficher dans une fenêtre de ton programme

Donc il faudrait nous en dire un peu plus :)

Amicalement,
The Destiny
Commenter la réponse de cs_thedestiny
Messages postés
109
Date d'inscription
vendredi 8 avril 2005
Dernière intervention
15 mai 2007
- 1 juin 2005 à 21:41
0
Merci
En fait c simple,
j'aimerais afficher une image (comme dans le code ci-desous) que je
prends non pas dans un dossier, mais qui se trouve dans l'EXE, par je
ne sais quel moyen... Dit-moi si il faut plus d'indication...







//********************************

#include <windows.h>



LRESULT CALLBACK ProcedureDeFenetre (HWND,UINT,WPARAM,LPARAM); //prototype de la fonction de traitement des messages





int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hInstancePrecedente,PSTR LigneDeCommande,int ModeAffichage)

{

char NomProgramme[ ] = "xamax";

HWND Fenetre; //le type HWND définit un type HANDLE

MSG Message;

WNDCLASSEX ClasseFenetre;



ClasseFenetre.cbSize =sizeof(ClasseFenetre);

ClasseFenetre.style = CS_HREDRAW|CS_VREDRAW;

ClasseFenetre.lpfnWndProc =ProcedureDeFenetre;

ClasseFenetre.cbClsExtra =0;

ClasseFenetre.cbWndExtra =0;

ClasseFenetre.hInstance =hInstance;

ClasseFenetre.hIcon =LoadIcon(0,IDI_APPLICATION); //LoadIcon charge un identificateur d'icone

ClasseFenetre.hCursor =LoadCursor(0,IDC_ARROW); //LoadCursor charge un identificateur de curseur

ClasseFenetre.hbrBackground =CreateSolidBrush(RGB(255,255,255)); //définit le fond d'écran de la fenêtre

ClasseFenetre.lpszMenuName =0;

ClasseFenetre.lpszClassName =NomProgramme;

ClasseFenetre.hIconSm =LoadIcon(NULL,IDI_APPLICATION);



RegisterClassEx(&ClasseFenetre); //on enregistre la classe de la fenêtre



//CreateWindow va créer "visuellement" une fenetre qui utilisera la classe enregistree

Fenetre=CreateWindow(NomProgramme, //nom de la classe de fenetre


"xamax", //titre de la fenêtre visible


WS_OVERLAPPEDWINDOW, //style de la fenetre


CW_USEDEFAULT, //emplacement x à l'appel


CW_USEDEFAULT, //emplacement y à l'appel


220, //taille sur l'axe x


290, //taille sur l'axe y


NULL,


NULL, //handle du menu


hInstance, //handle de l'instance (instance déclarée en haut)


NULL); //paramètres supplementaires



ShowWindow(Fenetre,ModeAffichage);//afficher la fenêtre à l'écran

UpdateWindow(Fenetre);//mise à jour de la fenêtre



//Lecture d'un message dans la file d'attente

while(GetMessage(&Message,NULL,0,0))

{

TranslateMessage(&Message);

DispatchMessage(&Message);

}

return Message.wParam;

}





LRESULT CALLBACK ProcedureDeFenetre(HWND fen,UINT msg,WPARAM wparam,LPARAM lparam)

{

switch(msg)

{

HINSTANCE hInst; //déclaration d'une instance type à cette fonction de traitement des messages



//déclaration de variables pour les images

BITMAP bm;

PAINTSTRUCT ps;

HDC hDC, hMemDC;

static HBITMAP hBitmap;



case WM_CREATE:

hBitmap = LoadImage(hInst, //charge l'image dans l'instance déclarée sans la dessiner

"xamax.bmp", //indique le nom du fichier, pourrait être du style "C:\\dossier\\xamax.bmp"

IMAGE_BITMAP, //indique que c'est une image bitmap :P

0, 0, //0,0 prends l'image sans la déformer

LR_DEFAULTSIZE|LR_LOADFROMFILE); //charge l'image avec ses tailles de départs

break;



case WM_PAINT:

hDC = BeginPaint(fen, &ps);



//Affiche l'image

DrawState(hDC,

NULL,

NULL,

(LPARAM)hBitmap,


0, 20, 10, 0, 0, //position de l'image

DST_BITMAP);

SetBkMode(hDC, TRANSPARENT); //peut aussi être opaque

TextOut(hDC, 60, 235, "Aller Xamax!!!
>_>!",
13);





DeleteDC(hMemDC);

EndPaint(fen, &ps);

break;



case WM_DESTROY:

PostQuitMessage(0);//arret du programme

return 0;

}

return DefWindowProc(fen,msg,wparam,lparam);

}

//*************************************
Commenter la réponse de by_rabbit_08
Messages postés
109
Date d'inscription
vendredi 8 avril 2005
Dernière intervention
15 mai 2007
- 1 juin 2005 à 22:46
0
Merci
Merci bcp!
Commenter la réponse de by_rabbit_08
Messages postés
1
Date d'inscription
jeudi 24 septembre 2009
Dernière intervention
24 septembre 2009
- 24 sept. 2009 à 19:36
0
Merci
dfergergeqg
Commenter la réponse de juju2612

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.