begin process at 2012 02 05 05:11:04
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > IMAGE DE FOND (BMP) DANS UNE FORM [DEVC++]

IMAGE DE FOND (BMP) DANS UNE FORM [DEVC++]


 Information sur la source

 Description

Bonjour, je me permet de mettre cette source car j'ai cherché longtemps avant de  trouver (Merci BruNews).
Cette source s'adresse au débutant comme moi qui cherche a mettre une image dans leur form.
Le code va chercher le fichier dans une ressource qui est incorporé dans l'executable.
Le compilateur utilisé est DevC++ 4.01.


Source

  • 1/ Dans Edit Ressources File:
  • Image1 BITMAP "D:/Programme/Cpp/KDo[W32]/os1.bmp"
  • 2/ Dans votre code:
  • 2-1/ La bibliotheque :
  • #include <windows.h>
  • 2-2/ Déclarer vos variables:
  • PAINTSTRUCT ps;
  • RECT rect;
  • HGLOBAL hgbl;
  • HDC hdc, hdc2;
  • HINSTANCE hinst;
  • HBITMAP hbmp;
  • 2-3/ Affichage de l'image:
  • [...]
  • LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
  • {
  • switch (message)
  • {
  • case WM_PAINT:
  • hbmp=(HBITMAP)LoadImage(hinst,"Image1", IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION); // va chercher l'image
  • hdc = BeginPaint( hwnd, &ps );
  • GetClientRect(hwnd,&rect);
  • hdc2 = CreateCompatibleDC(hdc);
  • SelectObject(hdc2, hbmp);
  • StretchBlt(hdc,0,0,260,270,hdc2,0,0,260,270, SRCCOPY); // incorpore l'image dans la form
  • DeleteDC(hdc2);
  • EndPaint( hwnd, &ps );
  • break;
  • [...]
  • }
1/ Dans Edit Ressources File:
Image1 BITMAP "D:/Programme/Cpp/KDo[W32]/os1.bmp"

2/ Dans votre code:

	2-1/ La bibliotheque :
#include <windows.h>
	
	2-2/ Déclarer vos variables:
PAINTSTRUCT ps;
RECT rect;
HGLOBAL hgbl;
HDC hdc, hdc2;
HINSTANCE hinst;
HBITMAP hbmp;

	2-3/ Affichage de l'image:
[...]
LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)                  
{
case WM_PAINT:
hbmp=(HBITMAP)LoadImage(hinst,"Image1", IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION); // va chercher l'image 
hdc = BeginPaint( hwnd, &ps );
GetClientRect(hwnd,&rect);
hdc2 = CreateCompatibleDC(hdc);
SelectObject(hdc2, hbmp);  
StretchBlt(hdc,0,0,260,270,hdc2,0,0,260,270, SRCCOPY); // incorpore l'image dans la form
DeleteDC(hdc2);
EndPaint( hwnd, &ps );
break;                          
[...]
}

 Conclusion

La il est trop tard (00h44) je documenterais la source plus tard.
Je sais que ce code est pas formidable mais si il aide au moin un debutant comme moi .... ca sera deja ca.

"Le secret du sage est de briller dans l'ombre"


 Sources de la même categorie

Source avec Zip APPLICATION DE DESSIN DE QUELQUES FIGURES par laguchori
Source avec Zip Source avec une capture HDR EXPOSURE FUSION par mecrosoft
Source avec Zip Source avec une capture IRC CLIENT MULTISERVEUR EN MFC (TXIRC) par TeniX
Source avec Zip ENTETE DU FICHIER BMP (BIPMAP) par k.Lutchi
Source avec Zip Source avec une capture XCOUPE : COUPE 2D par pop70

Commentaires et avis

Commentaire de Nikoscian le 02/10/2003 19:08:14

Si,si il est pas mal. Mais j'ai trouvé sur un tutoriel API (je n'arrive plus à me rappeler du site) une fonction encore plus simple qui affiche le bitmap (directement à partir d'un fichier) dans la fenêtre passée en paramètre:
void PrintBmp(HWND hWnd, char *filename)
{
  HBITMAP hBmp;
  HDC hDC;
  hBmp=(HBITMAP)LoadImage(NULL,filename,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
  hDC=GetDC(hWnd);
  DrawState(hDC,NULL,NULL,(LPARAM)hBmp,0,0,0,0,0,DST_BITMAP);
  DeleteObject(hBmp);
  ReleaseDC(hWnd,hDC);
}
On peut éventuellement la modifier pour lui faire charger un bitmap depuis une .DLL où un .EXE mais il faudra charger le module spécifié avec LoadLibrary puis trouver la ressource avec FindResource

Commentaire de victorcoasne le 09/07/2004 14:46:08

C'est http://bob.developpez.com/tutapiwin/

Commentaire de sebastienmz le 30/12/2006 14:44:25

jessaye de faire marcher ton code mais ça marche pas sous dev-cpp

Commentaire de BruNews le 30/12/2006 16:33:06 administrateur CS

LoadImage() est à faire hors de WM_PAINT pour ne pas utiliser trop la cpu.
Il manque ici le DeleteObject sinon saturation de la mémoire.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales